Python爬虫进行xpath解析实战

今天继续给大家介绍Python爬虫相关知识,本文主要内容是Python爬虫进行xpath解析实战。

一、需求分析

在之前的文章:Python爬虫进行正则数据解析实战Python爬虫进行BeautifulSoup数据解析实战中,我们分别使用正则表达式和BeautifulSoup库对爬虫爬取下来的网页进行数据解析。
和以上两篇文章需求类似,我们还是对一篇CSDN博客:https://blog.csdn.net/weixin_40228200/article/details/128438620,进行爬取并下载该博客内的所有图片。但是我们本文采取xpath的方式进行提取,因此我们用浏览器打开该文章后,可以直接使用浏览器的开发者工具复制图片的xpath地址,过程如下所示:
在这里插入图片描述
复制后的xpath表达式如下所示:

//*[@id="content_views"]/p[3]/img

注意,这样的写法采集出来的是一个img标签,因为这里使用了索引定位,如果我们想使用xpath表达式提取出所有的img标签,那么就需要将上述xpath表达式修改为如下形式:

//*[@id="content_views"]/p/img

二、代码实战

针对上述需求,我们进行编码如下:

import requests
from lxml import etree
import os
import time

headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"}
url="https://blog.csdn.net/weixin_40228200/article/details/128438620"
page_text=requests.get(url=url,headers=headers).text
tree=etree.HTML(page_text)
img_src_list=tree.xpath('//*[@id="content_views"]/p/img/@src')
i=1
if not os.path.exists("./csdnIMG3"):
    os.mkdir("./csdnIMG3")
for img_src in img_src_list:
    img_data=requests.get(url=img_src,headers=headers).content
    img_name="./csdnIMG3/"+str(i)+".png"
    fp=open(img_name,'wb')
    fp.write(img_data)
    fp.close()
    i+=1
    time.sleep(1)

上述代码与之前文章中的代码逻辑相同,只不过采取了xpath表达式进行数据提取和解析而已,在这里就不对上述代码进行赘述了,如果对上述代码存在困惑,欢迎在评论区提问。

三、效果检验

上述代码执行结果如下所示:
在这里插入图片描述
从上图可以看出,我们运行上述代码后,成功的通过xpath解析到了img标签数据。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远是少年啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值