如何正确编写python程序,爬取百度图片中猫和狗的图片各一百张,并存储至目标文件夹
时间: 2024-06-10 09:05:03 浏览: 144
您好,我是ChitGPT,我可以帮您解答问题。针对您的问题,我提供一个基于Python的爬虫程序如下:
```python
import requests
from bs4 import BeautifulSoup
import urllib.request
import os
dog_folder = 'dog_images'
cat_folder = 'cat_images'
# 创建狗图片文件夹并检查是否存在
if not os.path.exists(dog_folder):
os.makedirs(dog_folder)
# 创建猫图片文件夹并检查是否存在
if not os.path.exists(cat_folder):
os.makedirs(cat_folder)
# 设置百度图片搜索URL
base_url = 'https://image.baidu.com/search/index?tn=baiduimage&word='
query_dog = '狗'
query_cat = '猫'
# 爬取狗图片
url = base_url + query_dog
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
for i, image in enumerate(soup.find_all('img')):
if i < 100:
link = image.get('src')
if link.startswith("http"):
urllib.request.urlretrieve(link, os.path.join(dog_folder, f"{i}.jpg"))
# 爬取猫图片
url = base_url + query_cat
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
for i, image in enumerate(soup.find_all('img')):
if i < 100:
link = image.get('src')
if link.startswith("http"):
urllib.request.urlretrieve(link, os.path.join(cat_folder, f"{i}.jpg"))
```
这段代码中,我们引入了 requests、BeautifulSoup 和 urllib 这3个库,用于发起 HTTP 请求、解析 HTML 和下载图片。代码中的 `dog_folder` 和 `cat_folder` 分别存储狗和猫的图片,我们检查检测它们是否存在,若不存在,我们自动创建它们。我们使用百度图片搜索的链接来动态获取狗和猫的图片。通过解析 HTML 来寻找图片的链接,读取并下载这个链接。最后,我们把下载的图片保存在相应的文件夹中。注意: 百度搜索出来的图片存在压缩,因此可能存在失真和质量下降的情况。
阅读全文