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实现计算最小编辑距离
Mar 17 Python
python基础_文件操作实现全文或单行替换的方法
Sep 04 Python
python 函数传参之传值还是传引用的分析
Sep 07 Python
Python实现JSON反序列化类对象的示例
Jan 31 Python
python 实现登录网页的操作方法
May 11 Python
flask-socketio实现WebSocket的方法
Jul 31 Python
Python如何发布程序的详细教程
Oct 09 Python
python 构造三维全零数组的方法
Nov 12 Python
python判断列表的连续数字范围并分块的方法
Nov 16 Python
在PyCharm下打包*.py程序成.exe的方法
Nov 29 Python
Django 权限认证(根据不同的用户,设置不同的显示和访问权限)
Jul 24 Python
Python 里最强的地图绘制神器
Mar 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 无限级数据JSON格式及JS解析
2010/07/17 PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
2014/04/29 PHP
typecho插件编写教程(一):Hello World
2015/05/28 PHP
CI(Codeigniter)的Setting增强配置类实例
2016/01/06 PHP
PHP编辑器PhpStrom运行缓慢问题
2017/02/21 PHP
判断页面是关闭还是刷新的js代码
2007/01/28 Javascript
Three.js源码阅读笔记(Object3D类)
2012/12/27 Javascript
js自定义事件及事件交互原理概述(一)
2013/02/01 Javascript
jQuery 获取URL的GET参数值的小例子
2013/04/18 Javascript
解析Jquery中如何把一段html代码动态写入到DIV中(实例说明)
2013/07/09 Javascript
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
jquery默认校验规则整理
2014/03/24 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
2016/09/23 Javascript
JavaScript判断浏览器及其版本信息
2017/01/20 Javascript
AngularJS的Filter的示例详解
2017/03/07 Javascript
简单实现js鼠标跟随效果
2020/08/02 Javascript
jquery.tagsinput.js实现记录checkbox勾选的顺序
2019/09/21 jQuery
[46:23]完美世界DOTA2联赛PWL S2 FTD vs Magma 第一场 11.20
2020/11/23 DOTA
python定时执行指定函数的方法
2015/05/27 Python
python 按不同维度求和,最值,均值的实例
2018/06/28 Python
python实现自动登录
2018/09/17 Python
python实现写数字文件名的递增保存文件方法
2018/10/25 Python
Django结合ajax进行页面实时更新的例子
2019/08/12 Python
python实现简单遗传算法
2020/09/18 Python
HTML5 Web Database 数据库的SQL语句的使用方法
2012/12/09 HTML / CSS
森海塞尔美国官网:Sennheiser耳机与耳麦
2017/07/19 全球购物
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
一些网络技术方面的面试题
2014/05/01 面试题
争先创优演讲稿
2014/09/15 职场文书
廉政文化进校园广播稿
2014/10/20 职场文书
表彰大会新闻稿
2015/07/17 职场文书
2016年端午节寄语
2015/12/04 职场文书
导游词之海南天涯海角
2019/12/05 职场文书
MySQL系列之十二 备份与恢复
2021/07/02 MySQL
MySQL配置主从服务器(一主多从)
2021/08/07 MySQL
Java获取字符串编码格式实现思路
2022/09/23 Java/Android