【Python爬虫系列】使用requests爬取图片

Python3常用的爬虫第三方插件有requests,urllib.request等。这里主要介绍使用requests抓取网页上的图片,该方法只针对静态网页,不考虑js动态加载的网页。

预备知识:

  • requests模块的基本了解,包括get,post等方法和status_code,history等属性。
  • 熟练使用BeautifulSoup(美丽汤)进行文本定位、筛选,常用方法有find_all,select等。
  • 基本的文件流操作,如文件夹是否存在的判断,新建文件夹等。
  • requests的write下载图片操作

操作开始:

这里以笔趣阁(http://www.biquzi.com/)为例,抓取网页上的小说封面。

抓图的基本流程就是

requests发送网页请求 --> 使用get获取response --> 利用BeautifulSoup对response进行文本筛选,抓取图片链接 ---> 新建一个图片存放的文件夹 ---> urlretrieve下载图片到文件夹


F12分析网页结构


图片定位到的文本信息类似于上图红框所示:

<img src="http://www.biquzi.com/files/article/image/0/703/703s.jpg" alt="斗战狂潮" width="120" height="150"> == $0

我们只关心图片链接信息(标红部分),其他的信息都要过滤掉。

下面上具体代码

import requests
import urllib.request
from bs4 import BeautifulSoup
import os
import time

url  = 'http://www.biquzi.com/'
headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.get(url, headers=headers)  # 使用headers避免访问受限
soup = BeautifulSoup(response.content, 'html.parser')
items = soup.find_all('img')
folder_path = './photo/'
if os.path.exists(folder_path) == False:  # 判断文件夹是否已经存在
    os.makedirs(folder_path)  # 创建文件夹

for index,item in enumerate(items):
	if item:		
		html = requests.get(item.get('src'))   # get函数获取图片链接地址,requests发送访问请求
		img_name = folder_path + str(index + 1) +'.png'
		with open(img_name, 'wb') as file:  # 以byte形式将图片数据写入
			file.write(html.content)
			file.flush()
		file.close()  # 关闭文件
		print('第%d张图片下载完成' %(index+1))
		time.sleep(1)  # 自定义延时
print('抓取完成')


最后运行成功的结果





  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
使用requests库可以方便地爬取图片。通过requests.get(url)方法可以获取到图片的二进制数据,然后可以使用with open()语句将图片保存到本地。以下是一个使用requests爬取图片的示例代码: ```python import requests def download_image(url, save_path): response = requests.get(url) with open(save_path, 'wb') as f: f.write(response.content) download_image('https://example.com/image.jpg', 'image.jpg') ``` 在这个示例中,我们定义了一个`download_image`函数,该函数接收图片的URL和保存路径作为参数。使用requests.get方法获取图片的二进制数据,然后使用with open语句打开文件并将二进制数据写入文件中,从而实现图片的保存。 请注意,以上示例仅展示了如何使用requests爬取图片。在实际应用中,你可能需要结合其他技术,如解析网页获取图片URL等来完善你的爬虫。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [16-python爬虫Requests库爬取海量图片](https://blog.csdn.net/bigzql/article/details/109007633)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [python爬虫使用requests进行图片爬取](https://blog.csdn.net/qq_44159028/article/details/120560451)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值