网页爬虫抓取百度图片(1.需要用到的库有:Requestsosos如果安装的请自己安装一下 )

优采云 发布时间: 2021-12-05 14:10

  网页爬虫抓取百度图片(1.需要用到的库有:Requestsosos如果安装的请自己安装一下

)

  1.需要用到的库有:

  请求re os time 如果没有安装,请自行安装。打开终端,在pycharm中输入命令进行安装。

  

  IDE:pycharm

  Python版本:3.8.1

  2. 爬取地址:

  https://www.vmgirls.com/9384.html

  -------------------废话不多说,不明白的可以给我留言,我们一步一步来-------- - ---------

  1.请求网页

  # 请求网页

import requests

response=requests.get('https://www.vmgirls.com/9384.html')

print(response.text)

  结果:

  

  发现请求是403,直接禁止我们访问。requests库会告诉他我们来自python,他知道我们是python,禁止爬行

  

  解决:

  我们可以伪装头部并设置它

  

  # 请求网页

import requests

headers={ 'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.100 Safari/537.36'

}response=requests.get('https://www.vmgirls.com/9384.html',headers=headers)

print(response.request.headers)

  结果:

  这个头是伪装的

  

  2.分析网页

  # 请求网页

import requests

import reheaders={ 'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.100 Safari/537.36'

}response=requests.get('https://www.vmgirls.com/9384.html',headers=headers)

# print(response.request.headers)

# print(response.text)

html=response.text#解析网页urls=re.findall('data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7',html)

print(urls);

  结果:

  

  你可能不明白 re.findall 是怎么来的。关键是找到图片的dom,按照re库的匹配规则进行匹配。需要匹配的用(.*?)表示,不需要匹配的用.*? 要更换它,

  打开网站,按f12查看源码找到图片的代码

  

  

  复制图片代码,打开网页源代码按ctrl+f搜索,找到图片源代码的位置

  

  3.保存图片

  您可以查看源代码了解详细信息。我为这些图片创建了一个文件夹(需要os库)并命名,这样下次看*敏*感*词*姐的时候分类更容易找到

  

  import time

import requestsimport reimport osheaders={ 'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.100 Safari/537.36'

}response=requests.get('https://www.vmgirls.com/9384.html',headers=headers)

# print(response.request.headers)

# print(response.text)

html=response.text# 解析网页# 目录名字dir_name=re.findall('data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7',html)[-1]

if not os.path.exists(dir_name):

os.mkdir(dir_name)

urls=re.findall('data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7',html)

print(urls);

# 保存图片for url in urls:

# 加个延时,避免给服务器造成压力 time.sleep(1)

# 图片的名字 file_name=url.split('/')[-1]

response = requests.get(url, headers=headers) with open(dir_name+'/'+file_name,'wb') as f:

f.write(response.content)

  PS:需要Python学习资料的可以加下方群找免费管理员领取

  

  免费获取源码、项目实战视频、PDF文件等

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线