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调用命令行进度条的方法
May 05 Python
解决python 无法加载downsample模型的问题
Oct 25 Python
使用python Fabric动态修改远程机器hosts的方法
Oct 26 Python
python画图系列之个性化显示x轴区段文字的实例
Dec 13 Python
Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
Apr 15 Python
python开发游戏的前期准备
May 05 Python
使用python写的opencv实时监测和解析二维码和条形码
Aug 14 Python
Python超越函数积分运算以及绘图实现代码
Nov 20 Python
如何基于Python实现电子邮件的发送
Dec 16 Python
将tf.batch_matmul替换成tf.matmul的实现
Jun 18 Python
python 对xml解析的示例
Feb 27 Python
python unittest单元测试的步骤分析
Aug 02 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对二维数组进行排序的简单实例
2013/12/19 PHP
解决cPanel无法安装php5.2.17
2014/06/22 PHP
destoon数据库表说明汇总
2014/07/15 PHP
php curl请求信息和返回信息设置代码实例
2015/04/27 PHP
图文详解PHP环境搭建教程
2016/07/16 PHP
PHP fclose函数用法总结
2019/02/15 PHP
Laravel框架Eloquent ORM删除数据操作示例
2019/12/03 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
使用javascript获取flash加载的百分比的实现代码
2011/05/25 Javascript
JS中Iframe之间传值的方法
2013/03/11 Javascript
点击按钮自动加关注的代码(sina微博/QQ空间/人人网/腾讯微博)
2014/01/02 Javascript
JavaScript中的document.referrer在各种浏览器测试结果
2014/07/18 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
2015/07/29 Javascript
基于HTML5+JS实现本地图片裁剪并上传功能
2017/03/24 Javascript
react-router实现跳转传值的方法示例
2017/05/27 Javascript
angular $watch 一个变量的变化(实例讲解)
2017/08/02 Javascript
Vue.js简易安装和快速入门(第二课)
2017/10/17 Javascript
详解JavaScript的this指向和绑定
2020/09/08 Javascript
基于openlayers实现角度测量功能
2020/09/28 Javascript
python实现基于信息增益的决策树归纳
2018/12/18 Python
Jupyter notebook在mac:linux上的配置和远程访问的方法
2019/01/14 Python
python脚本当作Linux中的服务启动实现方法
2019/06/28 Python
详解numpy.meshgrid()方法使用
2019/08/01 Python
用Python画一个LinkinPark的logo代码实例
2019/09/10 Python
matplotlib实现显示伪彩色图像及色度条
2019/12/07 Python
pytorch常见的Tensor类型详解
2020/01/15 Python
德国汉莎航空中国官网: Lufthansa中国
2017/03/30 全球购物
Molly Bracken法国电子商店:法国女性时尚品牌
2019/07/24 全球购物
聚网科技C++面试笔试题
2015/09/01 面试题
解释i节点在文件系统中的作用
2013/11/26 面试题
五十岁生日宴会答谢词
2014/01/15 职场文书
护理专科自荐书范文
2014/02/18 职场文书
法人委托书范本格式
2014/09/15 职场文书
股权转让协议范本
2014/12/07 职场文书
社区结对共建协议书
2016/03/23 职场文书
SpringCloud Function SpEL注入漏洞分析及环境搭建
2022/04/08 Java/Android