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抓取京东价格分析京东商品价格走势
Jan 09 Python
Python多线程编程(八):使用Event实现线程间通信
Apr 05 Python
Python数据分析之真实IP请求Pandas详解
Nov 18 Python
Python+matplotlib+numpy绘制精美的条形统计图
Jan 02 Python
python+opencv实现动态物体识别
Jan 09 Python
Python数据可视化 pyecharts实现各种统计图表过程详解
Aug 15 Python
python实现简易淘宝购物
Nov 22 Python
python打印异常信息的两种实现方式
Dec 24 Python
python numpy数组复制使用实例解析
Jan 10 Python
python数据预处理 :数据抽样解析
Feb 24 Python
简述 Python 的类和对象
Aug 21 Python
python实现按日期归档文件
Jan 30 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连接mssql数据库的几种方法
2013/02/21 PHP
PHP创建单例后台进程的方法示例
2017/05/23 PHP
静态页面的值传递(三部曲)
2006/09/25 Javascript
Javascript this指针
2009/07/30 Javascript
js hover 定时器(实例代码)
2013/11/12 Javascript
JQuery包裹DOM节点的方法
2015/06/11 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
2016/09/09 Javascript
10分钟掌握XML、JSON及其解析
2020/12/06 Javascript
jQueryUI 拖放排序遇到滚动条时有可能无法执行排序的小bug及解决方案
2016/12/19 Javascript
基于twbsPagination.js分页插件使用心得(分享)
2017/10/21 Javascript
Vue.js中provide/inject实现响应式数据更新的方法示例
2019/10/16 Javascript
Echarts实现单条折线可拖拽效果
2019/12/19 Javascript
Javascript地址引用代码实例解析
2020/02/25 Javascript
Vue3为什么这么快
2020/09/23 Javascript
[01:56]2014DOTA2西雅图邀请赛 MVP外卡赛老队长精辟点评
2014/07/09 DOTA
[30:55]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第二场 11.18
2020/11/18 DOTA
python中元类用法实例
2014/10/10 Python
Python环境变量设置方法
2016/08/28 Python
python 实现登录网页的操作方法
2018/05/11 Python
Python计算一个给定时间点前一个月和后一个月第一天的方法
2018/05/29 Python
Python图像滤波处理操作示例【基于ImageFilter类】
2019/01/03 Python
Python一个简单的通信程序(客户端 服务器)
2019/03/06 Python
PyQt5使用QTimer实现电子时钟
2019/07/29 Python
图解python全局变量与局部变量相关知识
2019/11/02 Python
Django中和时区相关的安全问题详解
2020/10/12 Python
Html5 Canvas动画基础碰撞检测的实现
2018/12/06 HTML / CSS
LivingSocial英国:英国本地优惠
2019/02/22 全球购物
军人违纪检讨书
2014/02/04 职场文书
小学生元旦广播稿
2014/02/21 职场文书
元旦联欢会感言
2014/03/04 职场文书
钳工实训报告总结
2014/11/04 职场文书
2014年前台个人工作总结
2014/11/14 职场文书
优秀团员个人总结
2015/02/26 职场文书
2016新年晚会开场白
2015/12/03 职场文书
python中sqllite插入numpy数组到数据库的实现方法
2021/06/21 Python
MySQL数据库超时设置配置的方法实例
2021/10/15 MySQL