利用python脚本,根据词条爬取百度图片(爬虫)
以下是一个简单的Python脚本,用于根据关键词爬取百度图片的示例。请注意,这个脚本仅用于学习目的,实际使用时应遵守相关法律法规,并遵循网站的robots.txt
规则。
import requests
from bs4 import BeautifulSoup
import os
import time
def download_image(image_url, keyword):
response = requests.get(image_url)
if response.status_code == 200:
file_path = f"{keyword}/{image_url.split('/')[-1]}"
with open(file_path, 'wb') as file:
file.write(response.content)
print(f"Image {image_url} downloaded successfully.")
else:
print(f"Failed to download image: {image_url}")
def crawl_baidu_images(keyword, max_images):
if not os.path.exists(keyword):
os.makedirs(keyword)
image_urls = set()
for i in range(max_images):
page_url = f"https://image.baidu.com/search/index?tn=baiduimage&word={keyword}&pn={i*30}"
response = requests.get(page_url)
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
for img in soup.find_all('img', class_='main_img'):
image_url = img['src']
if image_url not in image_urls:
image_urls.add(image_url)
download_image(image_url, keyword)
time.sleep(1) # 暂停一段时间以避免请求过于频繁
else:
print(f"Failed to crawl page: {page_url}")
break
if __name__ == "__main__":
crawl_baidu_images("tiananmen", 10) # 替换为你想要搜索的关键词和想要下载的图片数量
请确保你的环境中已安装requests
和beautifulsoup4
库。可以使用pip install requests beautifulsoup4
命令安装。
注意:
- 这个脚本仅用于学习目的,不得用于非法爬取或侵犯他人版权。
- 爬取的图片数量应当适度,避免对服务器造成过大压力。
- 爬虫行为可能会被百度服务器识别并封禁IP,因此应适当增加爬取的间隔时间。
评论已关闭