python使用xpath中遇到:到底是什么?


Posted in Python onJanuary 04, 2018

前言

大家在学习python爬虫的过程中,会发现一个问题,语法我看完了,说的也很详细,我也认真看了,爬虫还是不会写,或者没有思路,所以我的所有文章都会从实例的角度来解析一些常见的问题和报错。下面话不多说了,来一起看看详细的介绍吧。

Element是什么

回归正题,大家晕头转脑的看完繁杂的语法之后,已经迫不及待写点什么东西了,然后部分同学可能遇到了这个

<Element a at 0x39a9a80>

或者类似 Element a at 0x???????,这样的一个值,然后大家带着问题去搜,然后全是英文啊,什么一大堆乱七八糟的啊,英文不好的同学就崩溃了,在这里,我会重点解析一下

某种意义上来说,当你打印变量的时候得到的这个值,其实它是一个列表,然后列表中的每一个值都是一个字典

如何使用理解请看半成品开车实例,证明了本人非常擅长把学习和乐趣结合起来并且切身解决日常需求,滑稽脸.jpg

from bs4 import BeautifulSoup
from lxml import etree
import requests
gjc='SHKD-700'
#定义URL
html = "http://www.btanv.com/search/"+gjc+"-hot-desc-1"
#解码URL
html = requests.get(html).content.decode('utf-8')
#解析成xml
dom_tree = etree.HTML(html)
#在xml中定位节点,返回的是一个列表
links = dom_tree.xpath("//a[@class='download']")
for index in range(len(links)):
 # links[index]返回的是一个字典
 if (index % 2) == 0:
  print(links[index].tag)
  print(links[index].attrib)
  print(links[index].text)

实例解析

下面重点看看这个代码,

print(links[index])
  print(type(links[index]))
  print(links[index].tag)#获取<a>标签名a
  print(links[index].attrib)#获取<a>标签的属性href和class
  print(links[index].text)#获取<a>标签的文字部分

打印出来的是

<Element a at 0x3866a58>
<class 'lxml.etree._Element'>
a
{'href': 'magnet:?xt=urn:btih:7502edea0dfe9c2774f95118db3208a108fe10ca', 'class': 'download'}
磁力链接

该节点的html代码为

<a href="magnet:xt=urn:btih:7502edea0dfe9c2774f95118db3208a108fe10ca" rel="external nofollow" class="download">磁力链接</a>

看到这里大家应该就非常兽血沸腾的了解了三个属性的用法了。

总结

  • Element类型是'lxml.etree._Element',某种意义来说同时是一个列表
  • 列表的需要使用tag\attrib\text三个不同的属性来获取我们需要的东西
  • 变量.tag获取到的是标签名是---字符串
  • 变量.attrib获取到的是节点标签a的属性---字典
  • 变量.text获取到的是标签文本--字符串

欢迎收藏点赞,拒绝转载,因为目前我也是自学向前摸索,这些都是我目前认知到的东西,肯定有讲的不准确的地方,不希望会误导到他人

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python遍历目录中的所有文件的方法
Jul 08 Python
python 排序算法总结及实例详解
Sep 28 Python
Python 实现文件的全备份和差异备份详解
Dec 27 Python
windows下Virtualenvwrapper安装教程
Dec 13 Python
python实现基于SVM手写数字识别功能
May 27 Python
详解将Django部署到Centos7全攻略
Sep 26 Python
tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例
Jan 21 Python
SpringBoot实现登录注册常见问题解决方案
Mar 04 Python
PageFactory设计模式基于python实现
Apr 14 Python
python 基于opencv 实现一个鼠标绘图小程序
Dec 11 Python
python ansible自动化运维工具执行流程
Jun 24 Python
Python 类,对象,数据分类,函数参数传递详解
Sep 25 Python
python使用itchat库实现微信机器人(好友聊天、群聊天)
Jan 04 #Python
python实现微信跳一跳辅助工具步骤详解
Jan 04 #Python
Python中实现最小二乘法思路及实现代码
Jan 04 #Python
Python找出最小的K个数实例代码
Jan 04 #Python
Python编程把二叉树打印成多行代码
Jan 04 #Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
Jan 04 #Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
Jan 04 #Python
You might like
PHP下10件你也许并不了解的事情
2008/09/11 PHP
PHP实现单例模式最安全的做法
2014/06/13 PHP
php删除左端与右端空格的方法
2014/11/29 PHP
PHP中Restful api 错误提示返回值实现思路
2016/04/12 PHP
PHP pear安装配置教程
2016/05/14 PHP
php微信公众号开发之欢迎老朋友
2018/10/20 PHP
PHP的重载使用魔术方法代码实例详解
2021/02/26 PHP
Extjs学习笔记之八 继承和事件基础
2010/01/08 Javascript
Javascript保存网页为图片借助于html2canvas库实现
2014/09/05 Javascript
基于jQuery实现的向下滑动二级菜单效果代码
2015/08/31 Javascript
彻底学会Angular.js中的transclusion
2017/03/12 Javascript
nodejs爬虫遇到的乱码问题汇总
2017/04/07 NodeJs
jquery.validate.js 多个相同name的处理方式
2017/07/10 jQuery
[js高手之路]设计模式系列课程-发布者,订阅者重构购物车的实例
2017/08/29 Javascript
学习RxJS之JavaScript框架Cycle.js
2019/06/17 Javascript
Vue Router的手写实现方法实现
2020/03/02 Javascript
python脚本实现统计日志文件中的ip访问次数代码分享
2014/08/06 Python
Python3字符串学习教程
2015/08/20 Python
Python设计实现的计算器功能完整实例
2017/08/18 Python
Python TKinter如何自动关闭主窗口
2020/02/26 Python
Python range与enumerate函数区别解析
2020/02/28 Python
VICHY薇姿美国官方网站:欧洲药房第一的抗衰老品牌
2017/11/22 全球购物
Redbubble法国:由独立艺术家设计的独特产品
2019/01/08 全球购物
牵手50台湾:专为黄金岁月的单身人士而设的交友网站
2021/02/18 全球购物
下述程序的作用是计算机数组中的最大元素值及其下标
2012/11/26 面试题
党员党性分析材料
2014/02/17 职场文书
市场营销专业毕业生求职信
2014/03/26 职场文书
感恩教师节演讲稿
2014/09/03 职场文书
领导班子党的群众路线对照检查材料
2014/09/25 职场文书
2014年党小组工作总结
2014/12/20 职场文书
退货证明模板
2015/06/23 职场文书
导游词之开封禹王台风景区
2019/12/02 职场文书
Golang: 内建容器的用法
2021/05/05 Golang
mysql 数据插入优化方法之concurrent_insert
2021/07/01 MySQL
Android开发 使用文件储存的方式保存QQ密码
2022/04/24 Java/Android
MySQL索引失效十种场景与优化方案
2023/05/08 MySQL