前言
大家在学习python爬虫的过程中,会发现一个问题,语法我看完了,说的也很详细,我也认真看了,爬虫还是不会写,或者没有思路,所以我的所有文章都会从实例的角度来解析一些常见的问题和报错。下面话不多说了,来一起看看详细的介绍吧。
Element是什么
回归正题,大家晕头转脑的看完繁杂的语法之后,已经迫不及待写点什么东西了,然后部分同学可能遇到了这个
<Element a at 0x39a9a80>
或者类似 Element a at 0x???????,这样的一个值,然后大家带着问题去搜,然后全是英文啊,什么一大堆乱七八糟的啊,英文不好的同学就崩溃了,在这里,我会重点解析一下
某种意义上来说,当你打印变量的时候得到的这个值,其实它是一个列表,然后列表中的每一个值都是一个字典
如何使用理解请看半成品开车实例,证明了本人非常擅长把学习和乐趣结合起来并且切身解决日常需求,滑稽脸.jpg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
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中定位节点,返回的是一个列表 for index in range ( len (links)): # links[index]返回的是一个字典 if (index % 2 ) = = 0 : print (links[index].tag) print (links[index].attrib) print (links[index].text) |
实例解析
下面重点看看这个代码,
1
2
3
4
5
|
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>标签的文字部分 |
打印出来的是
1
2
3
4
5
|
<Element a at 0x3866a58> <class 'lxml.etree._Element'> a {'href': 'magnet:?xt=urn:btih:7502edea0dfe9c2774f95118db3208a108fe10ca', 'class': 'download'} 磁力链接 |
该节点的html代码为
1
|
< a href = "magnet:xt=urn:btih:7502edea0dfe9c2774f95118db3208a108fe10ca" rel = "external nofollow" class = "download" >磁力链接</ a > |
看到这里大家应该就非常兽血沸腾的了解了三个属性的用法了。
总结
- Element类型是'lxml.etree._Element',某种意义来说同时是一个列表
- 列表的需要使用tag\attrib\text三个不同的属性来获取我们需要的东西
- 变量.tag获取到的是标签名是---字符串
- 变量.attrib获取到的是节点标签a的属性---字典
- 变量.text获取到的是标签文本--字符串
欢迎收藏点赞,拒绝转载,因为目前我也是自学向前摸索,这些都是我目前认知到的东西,肯定有讲的不准确的地方,不希望会误导到他人
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。
原文链接:https://segmentfault.com/a/1190000012645691