![爬虫中lxml模块的使用,第1张 爬虫中lxml模块的使用,第1张](/aiimages/%E7%88%AC%E8%99%AB%E4%B8%ADlxml%E6%A8%A1%E5%9D%97%E7%9A%84%E4%BD%BF%E7%94%A8.png)
爬虫中lxml模块的使用
每日分享:
做事情用“坚持”两个字,你的潜意识就会认为是一件困难的事情,然后你必须强迫自己去执行,这样是不对的,想要把任何一件事情做成功,一定要找到享受的感觉,以“享受”的心态去执行,你的潜意识就会认为这是一件容易的事情。
一、爬虫对HTML提取的内容
- 提取标签中的文本内容
- 提取标签中的属性的值
- 比如,提取a标签中href属性的值,获取url,进而继续发起请求
二、lxml模块的使用
1. 导入lxml的etree库
from lxml import etree
2. 利用etree.HTML,将html字符串(bytes类型或str类型)转化为element对象,element对象具有xpath的方法,返回结果的列表
html = etree.HTML(text)
ret_list = html.xpath("xpath语法规则字符串")
3. xpath方法返回列表的三种情况
- 返回空列表:根据xpath语法规则字符串,没有定位到任何元素
- 返回由字符串构成的列表:xpath字符串规则匹配的一定是文本内容或某属性的值
- 返回由element对象构成的列表:xpath规则字符串匹配的是标签,列表中的element对象可以继续进行xpath
三、lxml模块使用示例
from lxml import etree
text = '''
-
first item
-
second item
-
third item
-
fourth item
-
fifth item
'''
# 转化为element对象
html = etree.HTML(text)
text_list = html.xpath('//a/text()')
href_list = html.xpath('//a/@href')
print(text_list, href_list)
print('-'*20)
for text in text_list:
my_index = text_list.index(text)
href = href_list[my_index]
print(text, href)
print('-'*20)
# zip:以同样的索引访问text_list和href_list
for text, href in zip(text_list, href_list):
print(text, href)
print('-'*20)
el_list = html.xpath('//a')
for el in el_list:
print(el.xpath('./text()'))
print('-'*20)
for el in el_list:
print(el.xpath('.//text()'))
print('-'*20)
for el in el_list:
print(el.xpath('text()'))
print('-'*20)
for el in el_list:
print(el.xpath('./text()')[0], el.xpath('./@href')[0])
print('-'*20)
结果:
评论列表(0条)