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正则匹配抓取豆瓣电影链接和评论代码分享
Dec 27 Python
python判断给定的字符串是否是有效日期的方法
May 13 Python
Django中URL视图函数的一些高级概念介绍
Jul 20 Python
Python在Windows和在Linux下调用动态链接库的教程
Aug 18 Python
python 表达式和语句及for、while循环练习实例
Jul 07 Python
python程序封装为win32服务的方法
Mar 07 Python
详解python的argpare和click模块小结
Mar 31 Python
使用Python为中秋节绘制一块美味的月饼
Sep 11 Python
python pyinstaller打包exe报错的解决方法
Nov 02 Python
Python连接SQLite数据库并进行增册改查操作方法详解
Feb 18 Python
python Plotly绘图工具的简单使用
Mar 03 Python
python代码区分大小写吗
Jun 17 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
BBS(php &amp; mysql)完整版(二)
2006/10/09 PHP
php的一个登录的类 [推荐]
2007/03/16 PHP
PHP 八种基本的数据类型小结
2011/06/01 PHP
利用Ffmpeg获得flv视频缩略图和视频时间的代码
2011/09/15 PHP
探讨:php中在foreach中使用foreach ($arr as &amp;$value) 这种类型的解释
2013/06/24 PHP
Laravel构建即时应用的一种实现方法详解
2017/08/31 PHP
解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]
2020/04/06 PHP
sina的lightbox效果。
2007/01/09 Javascript
在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)
2011/12/20 Javascript
JavaScript取得鼠标绝对位置程序代码介绍
2012/09/16 Javascript
js播放wav文件(源码)
2013/04/22 Javascript
jquery实现不同大小浏览器使用不同的css样式表的方法
2014/04/02 Javascript
AngularJS模板加载用法详解
2016/11/04 Javascript
基于vue-cli创建的项目的目录结构及说明介绍
2017/11/23 Javascript
浅析从vue源码看观察者模式
2018/01/29 Javascript
JS随机数产生代码分享
2018/02/24 Javascript
微信小程序外卖选购页实现切换分类与数量加减功能案例
2019/01/15 Javascript
vue中v-show和v-if的异同及v-show用法
2019/06/06 Javascript
python cs架构实现简单文件传输
2020/03/20 Python
Python设计模式之模板方法模式实例详解
2019/01/17 Python
简单了解python filter、map、reduce的区别
2020/01/14 Python
基于HTML5超酷摄像头(HTML5 webcam)拍照功能实现代码
2012/12/13 HTML / CSS
伦敦剧院门票:From The Box Office
2018/06/30 全球购物
宝拉珍选官方旗舰店:2%水杨酸精华液,收缩毛孔粗大和祛痘
2018/07/01 全球购物
adidas泰国官网:adidas TH
2020/07/11 全球购物
教育系毕业生中文求职信范文
2013/10/06 职场文书
保安员岗位职责
2013/11/17 职场文书
项目专员岗位职责
2013/12/04 职场文书
模具专业毕业生自荐书范文
2014/02/19 职场文书
竞选学生会主席演讲稿
2014/04/24 职场文书
生物技术专业求职信
2014/06/10 职场文书
设立有限责任公司出资协议书
2014/11/01 职场文书
2014小学教师年度考核工作总结
2014/12/03 职场文书
同学聚会邀请函
2015/01/30 职场文书
化验室安全管理制度
2015/08/06 职场文书
5分钟教你docker安装启动redis全教程(全新方式)
2021/05/29 Redis