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 相关文章推荐
python3 实现的人人影视网站自动签到
Jun 19 Python
基于Python 的进程管理工具supervisor使用指南
Sep 18 Python
详解TensorFlow查看ckpt中变量的几种方法
Jun 19 Python
Pyqt5 基本界面组件之inputDialog的使用
Jun 25 Python
python自动生成model文件过程详解
Nov 02 Python
Python字典深浅拷贝与循环方式方法详解
Feb 09 Python
深度学习入门之Pytorch 数据增强的实现
Feb 26 Python
Ubuntu18.04安装 PyCharm并使用 Anaconda 管理的Python环境
Apr 08 Python
DataFrame.groupby()所见的各种用法详解
Jun 14 Python
Python 下载Bing壁纸的示例
Sep 29 Python
python3中calendar返回某一时间点实例讲解
Nov 18 Python
python爬取豆瓣电影排行榜(requests)的示例代码
Feb 18 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生成UTF8文件的方法
2010/05/15 PHP
Yii中创建自己的Widget实例
2016/01/05 PHP
PHP实现批量检测网站是否能够正常打开的方法
2016/08/23 PHP
PHP序列化操作方法分析
2016/09/28 PHP
thinkPHP js文件中U方法不被解析问题的解决方法
2016/12/05 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
PHP设计模式之组合模式定义与应用示例
2020/02/01 PHP
什么是MEAN?JavaScript编程中的MEAN是什么意思?
2014/12/18 Javascript
JavaScript的ExtJS框架中表格的编写教程
2016/05/21 Javascript
javascript 常用验证函数总结
2016/06/28 Javascript
JavaScript实现复制文章自动添加版权
2016/08/02 Javascript
浅谈JavaScript 中有关时间对象的方法
2016/08/15 Javascript
jQuery模拟12306城市选择框功能简单实现方法示例
2018/08/13 jQuery
Egg.js 中 AJax 上传文件获取参数的方法
2018/10/10 Javascript
Angular8 Http拦截器简单使用教程
2019/08/20 Javascript
Python实现中文数字转换为阿拉伯数字的方法示例
2017/05/26 Python
Python 修改列表中的元素方法
2018/06/26 Python
python tornado微信开发入门代码
2018/08/24 Python
解决pandas.DataFrame.fillna 填充Nan失败的问题
2018/11/06 Python
PyQt5 实现给窗口设置背景图片的方法
2019/06/13 Python
查看已安装tensorflow版本的方法示例
2020/04/19 Python
python自定义函数def的应用详解
2020/06/03 Python
python生成xml时规定dtd实例方法
2020/09/21 Python
Scrapy爬虫文件批量运行的实现
2020/09/30 Python
python regex库实例用法总结
2021/01/03 Python
使用HTML5的链接预取功能(link prefetching)给网站提速
2012/12/13 HTML / CSS
用HTML5的canvas实现一个炫酷时钟效果
2016/05/20 HTML / CSS
Linux上比较文件的命令都有哪些
2013/09/28 面试题
英语教师岗位职责
2014/03/16 职场文书
个人存款证明书
2014/10/18 职场文书
社区党的群众路线教育实践活动总结材料
2014/10/31 职场文书
先进典型事迹材料
2014/12/29 职场文书
银行自荐信怎么写
2015/03/05 职场文书
创业计划书之儿童理发店
2019/09/27 职场文书
Python+腾讯云服务器实现每日自动健康打卡
2021/12/06 Python
详解在OpenCV中如何使用图像像素
2022/03/03 Python