爬虫之xpath的使用
本文以爬取百度首页的本文,网址和图片信息为例,介绍一个用xpath实现的最基本的爬虫代码
提取属性
0.框架搭建
导入python库
简单爬虫一定到导入的一个库就是requests库,本文使用requests库中的get方法。由于本文使用xpath方法,所以还要使用lxml包中的etree方法
import requests
from lxml import etree
在此之后我们还要定义一个URL
url ="https://www.baidu.com"
获取网页信息
html_baidu = requests.get(url)
初始化一个etree模板
html = etree.HTML(html_baidu.text)
1.获取文本信息
获取Li标签下的文本
(1)all_li = selector.xpath('//div/ul/li/a/text()')#从根目录下获取某li标签的下的文本
(2)one_class = selector.xpath('//div/ul/li[@class="item-3"]/a/text()')#获取指定class标签下的文本
(3)one_class = selector.xpath('*/li[@class="item-3"]/a/text()')#另一种方法获取文本
(4)a_ul = selector.xpath('//ul/text()')#获取UL下的文本
(5)all_text = selector.xpath('string(//ul)')#提取全部文本
2.获取网址信息
获取li标签下的网址
(1)one_herf = selector.xpath('//div/ul/li/a/@href')
(2)one_herf = selector.xpath('//div/ul/li/a[1]/@href')#获取第一个a标签下的网址
例子:
获取百度首页中的几个文本信息和HTML网址信息和百度的图片
1.几个文本信息
text = html.xpath('//*[@id="u1"]/a/text()')
2.几个网址信息
url = html.xpath('//*[@id="u1"]/a/@href')
3.获取百度图片
img1 = html.xpath('//*[@id="lg"]/img/@src')[0]
img2 = 'http:'+img1
print(img2)
t = requests.get(img2)
with open('baidu.png','wb') as f:
f.write(t.content)

浙公网安备 33010602011771号