Python—爬取⽹络图⽚(正则表达式)
⼀、源码:
import requests
import re
import os
#创建存储图⽚⽂件夹
if not ists('./爬取图⽚'):
os.mkdir('./爬取图⽚')
#UA伪装
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36' }
#获取⽹页地址
url='picbian/4kdongman/index_%d.html'
for pageNum in range(2,10):
new_url=format(url%pageNum)
#url对应的⼀整张页⾯进⾏爬取
page_(url=new_url,headers=headers).text
#将页⾯中的图⽚进⾏解析正则表达式
ex='<li>.*?<img src="(.*?)" alt=.*?><b>.*?</b></a></li>'
#存储每页每张图⽚信息
img_src_list=re.findall(ex,page_text,re.S)
#存储每页图⽚
for src in img_src_list:
#拼接出⼀个完整的图⽚url
src='picbian/'+src
#请求到图⽚的⼆进制数据
img_(url=src,headers=headers).content
#图⽚名称
图片下载站源码img_name=src.split('/')[-1]
#图⽚存储路径
imgPath='./爬取图⽚/'+img_name
with open(imgPath,'wb') as fp:
fp.write(img_data)
print(img_name,'下载成功')
⼆、实现效果:
三、步骤解析:
-1 指定url(⽹页地址)
- UA 伪装
-
请求参数的处理(有参数请求时)
-2 发送请求(打开⽹页)
-3 获取响应数据(⽹页数据)
-4 持久化存储(存储数据)
1.指定url
#获取⽹页地址
url='picbian/4kdongman/index_%d.html'
#UA伪装
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36'
}
2.发送请求
#请求获取⼀整张页⾯
<(url=new_url,headers=headers).text
#请求到图⽚的⼆进制数据
<(url=src,headers=headers).content
3.获取响应数据
#获取到url页⾯数据
page_(url=new_url,headers=headers).text
#获取到图⽚的⼆进制数据
img_(url=src,headers=headers).content
4.持久化存储
with open(imgPath,'wb') as fp:
fp.write(img_data)
print(img_name,'下载成功')
四、正则表达式的获取
#⽹页每张图⽚的信息
<li><a href="/tupian/28900.html" target="_blank"><img src="/uploads/allimg/220215/233307-164493918726da.jpg" alt="敦煌飞天⼥孩佛像 3d美⼥4k动漫壁纸384
#正则表达式提取
ex='<li>.*?<img src="(.*?)" alt=.*?><b>.*?</b></a></li>'
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论