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 27 Python
在Python中使用lambda高效操作列表的教程
Apr 24 Python
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
Apr 25 Python
在Python中操作字典之clear()方法的使用
May 21 Python
Python for Informatics 第11章之正则表达式(二)
Apr 21 Python
Python匹配中文的正则表达式
May 11 Python
matplotlib subplots 设置总图的标题方法
May 25 Python
详解Python3 对象组合zip()和回退方式*zip
May 15 Python
Python将文字转成语音并读出来的实例详解
Jul 15 Python
Python 经典算法100及解析(小结)
Sep 13 Python
PyTorch里面的torch.nn.Parameter()详解
Jan 03 Python
序列化Python对象的方法
Aug 01 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/01/18 PHP
基于PHP如何把汉字转化为拼音
2015/12/11 PHP
PHP实现二维数组根据key进行排序的方法
2016/12/30 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
2018/04/08 PHP
几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
2009/06/02 Javascript
filters.revealTrans.Transition使用方法小结
2010/08/19 Javascript
原生Js实现按的数据源均分时间点幻灯片效果(已封装)
2010/12/28 Javascript
jQuery 版元素拖拽原型代码
2011/04/25 Javascript
js固定DIV高度,超出部分自动添加滚动条的简单方法
2013/07/10 Javascript
JS 作用域与作用域链详解
2015/04/07 Javascript
Javascript中的return作用及javascript return关键字用法详解
2015/11/05 Javascript
JS表格组件神器bootstrap table详解(基础版)
2015/12/08 Javascript
实例详解JSON数据格式及json格式数据域字符串相互转换
2016/01/07 Javascript
javascript实现tab响应式切换特效
2016/01/29 Javascript
JavaScript暂停和继续定时器的实现方法
2016/07/18 Javascript
jQuery实现表格隔行及滑动,点击时变色的方法【测试可用】
2016/08/20 Javascript
深入理解Webpack 中路径的配置
2017/06/17 Javascript
angular学习之从零搭建一个angular4.0项目
2017/07/10 Javascript
使用vuepress搭建静态博客的示例代码
2019/02/14 Javascript
vuex vue简单使用知识点总结
2019/08/29 Javascript
js仿360开机效果
2019/12/26 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
[00:42]《辉夜杯》—职业组预选赛12月3日15点 正式打响
2015/12/03 DOTA
python实现遍历文件夹修改文件后缀
2018/08/28 Python
django框架实现一次性上传多个文件功能示例【批量上传】
2019/06/19 Python
如何不用安装python就能在.NET里调用Python库
2019/07/12 Python
Python 图片处理库exifread详解
2021/02/25 Python
英国拳击装备购物网站:RDX Sports
2018/01/23 全球购物
招商经理岗位职责
2013/11/16 职场文书
活动总结报告格式
2014/05/09 职场文书
会计个人实习计划书
2014/08/15 职场文书
2014年九一八事变演讲稿
2014/09/14 职场文书
机动车登记业务委托书
2014/10/08 职场文书
2014年科研工作总结
2014/12/03 职场文书
审查起诉阶段律师意见书
2015/05/19 职场文书
Nginx实现负载均衡的项目实践
2022/03/18 Servers