今天继续给大家介绍Python爬虫相关知识,本文主要内容是Python爬虫进行BeautifulSoup数据解析实战。
一、需求分析
在上文Python爬虫进行正则数据解析实战中,我们实现了使用re库的正则表达式来提取目标URL中的图片。在本文中,我们尝试使用BeautifulSoup库来对正文中的图片进行提取下载。
使用浏览器自带的检查工具,简单分析页面可以看出,页面正文在一个id为content_views的div标签中,如下所示:
因此,我们可以使用BeautifulSoup,查找该div标签下的所有img标签,并提取img标签下的src属性。
二、编码实战
根据上述需求和分析,编写好的代码如下所示:
import requests
from bs4 import BeautifulSoup
import time
import os
url='https://blog.csdn.net/weixin_40228200/article/details/128438620'
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"
}
page_text=requests.get(url=url,headers=headers).text
soup=BeautifulSoup(page_text,'lxml')
if not os.path.exists("./csdnIMG2"):
os.mkdir("./csdnIMG2")
img_list=soup.select('#content_views img')
img_name_id=1
for img in img_list:
img_url=img['src']
img_name="./csdnIMG2/"+str(img_name_id)+".png"
img_data=requests.get(url=img_url,headers=headers).content
with open(img_name,'wb') as fp:
fp.write(img_data)
img_name_id+=1
time.sleep(1)
在使用BeautifulSoup函数时,我们使用了id属性选择器,以及迭代的方式,选择除了所有的img标签,代码如下所示:
img_list=soup.select('#content_views img')
三、效果检验
上述代码执行结果如下所示:
从上文可以看出,我们成功的提取除了图片!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200