简介:本文将介绍如何使用Python爬虫技术,根据关键字从某度图片搜索结果中爬取图片,并批量下载到本地。我们将使用requests和BeautifulSoup库来完成这个任务。通过这个实战,你将掌握如何利用爬虫技术批量下载图片,以及如何处理网络请求和HTML解析等技能。
在开始编写代码之前,请确保你已经安装了requests和BeautifulSoup库。你可以使用以下命令来安装它们:
pip install requests beautifulsoup4
接下来,我们将编写一个Python脚本,该脚本将根据给定的关键字,从某度图片搜索结果中爬取图片,并将它们批量下载到本地。以下是完整的源码:
```python
import requests
from bs4 import BeautifulSoup
import os
def download_images(keyword, num_pages):
image_dir = ‘images/‘
if not os.path.exists(image_dir):
os.makedirs(image_dir)
for page in range(1, num_pages + 1):
url = f’http://www.baidu.com/s?wd={keyword}&pn={page*10}‘
headers = {
‘User-Agent’: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36’
}
response = requests.get(url, headers=headers)
response.encoding = ‘utf-8’ # 设置编码为utf-8,确保正确解析中文内容
soup = BeautifulSoup(response.text, ‘html.parser’)
imgtags = soup.findall(‘img’)
for img in imgtags:
imgurl = img.get(‘src’) # 获取图片链接
img_name = img_url.split(‘/‘)[-1] # 提取图片文件名
img_path = os.path.join(image_dir, img_name) # 构建图片保存路径
response = requests.get(img_url, headers=headers) # 发送GET请求,获取图片内容
with open(img_path, ‘wb’) as f: # 写入本地文件系统
f.write(response.content)
print(f’Downloaded {img_name}’) # 打印下载进度
print(‘All images downloaded.’) # 打印下载完成信息
if __name == ‘__main‘:
keyword = input(‘请输入关键字:’) # 获取用户输入的关键字
num_pages = int(input(‘请输入要下载的页数:’)) # 获取用户输入的页数,并转换为整数类型
download_images(keyword, num_pages) # 调用函数,开始下载图片