用Python语言编写爬取百度图片中猫和狗的图片各100张,将图片存入相应文件夹,两个文件夹分别为cat和dog的代码
时间: 2024-06-10 11:05:01 浏览: 16
这是一个简单的爬虫示例,可以帮助您获取100张猫和100张狗的图片,并将其保存到相应的文件夹中。
首先,您需要安装Python的requests和beautifulsoup4库,用于发出HTTP请求和解析HTML代码。
以下是示例代码:
```python
import requests
from bs4 import BeautifulSoup
import os
# 定义要爬取的关键词和数量
keywords = ['cat', 'dog']
num_images = 100
# 定义存储图片的文件夹
for keyword in keywords:
if not os.path.exists(keyword):
os.makedirs(keyword)
# 爬取图片
for keyword in keywords:
print('开始爬取', keyword, '图片...')
# 构造百度图片的URL,并向服务器发出请求
url = 'https://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word={}&pn='.format(keyword)
for i in range(num_images // 30 + 1):
try:
response = requests.get(url + str(i * 30), timeout=10)
except requests.exceptions.Timeout:
print('请求超时,跳过此次请求')
continue
# 解析HTML代码,并获取图片URL
soup = BeautifulSoup(response.text, 'html.parser')
img_tags = soup.find_all('img')
img_urls = [img_tag.get('src') for img_tag in img_tags if img_tag.get('src') and 'http' in img_tag.get('src')]
# 下载图片,并将其保存到文件夹中
for j, url in enumerate(img_urls[:num_images - i * 30]):
try:
response = requests.get(url, timeout=10)
except requests.exceptions.Timeout:
continue
with open('{}/{}_{}.jpg'.format(keyword, keyword, j + 1 + i * 30), 'wb') as f:
f.write(response.content)
print(keyword, '图片爬取完成')
```
这段代码将在当前目录下创建两个文件夹cat和dog,并分别下载100张猫和100张狗的图片,并将它们保存到相应的文件夹中。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)