用python写一个爬取百度图片的爬虫
时间: 2024-06-10 16:05:59 浏览: 196
好的,以下是用Python编写的爬虫程序获取百度图片:
```python
import requests
from urllib.parse import urlencode
# 将关键字转换为URL格式
def get_keyword_url(keyword):
params = {
'tn': 'result_top',
'word': keyword
}
return 'https://image.baidu.com/search/index?' + urlencode(params)
# 获取图片的下载地址
def get_image_urls(url):
response = requests.get(url)
# 使用正则表达式提取图片下载地址
pattern = r'"thumbURL":"(https://.*?\.jpg)"'
image_urls = re.findall(pattern, response.text)
return image_urls
# 下载图片并保存到指定目录
def download_images(image_urls, save_path):
for url in image_urls:
response = requests.get(url)
# 以二进制模式保存图片
with open(save_path + url.split('/')[-1], 'wb') as f:
f.write(response.content)
print(url, '下载完成')
# 搜索关键词并下载图片
def search_and_download(keyword, count=10, save_path=''):
url = get_keyword_url(keyword)
image_urls = get_image_urls(url)
download_images(image_urls[:count], save_path)
print('所有图片下载完成')
# 测试程序
if __name__ == '__main__':
keyword = '美女'
search_and_download(keyword, 10, './images/')
```
这个程序中的 `get_keyword_url` 函数会将关键字转换为百度图片搜索的URL格式,`get_image_urls` 函数会根据给定的URL来提取图片的下载地址,`download_images` 函数则会下载这些图片并保存到指定目录下。
最后,`search_and_download` 函数会调用这些子函数来实现图片的搜索和下载。在这个例子中,我传入了关键字 “美女”,然后下载了前十张搜索结果中的图片,并将它们保存到 `./images/` 目录下。
希望能够帮到你!
阅读全文