python批量下载百度图片
时间: 2023-10-22 09:04:20 浏览: 154
可以使用Python中的requests和BeautifulSoup库来批量下载百度图片。
首先需要获取百度图片搜索结果页面的HTML代码,可以使用requests库来实现:
```python
import requests
url = 'https://image.baidu.com/search/index?tn=baiduimage&word=cat'
response = requests.get(url)
html = response.text
```
其中,`url`为百度图片搜索结果页面的URL,`response`为获取的响应对象,`html`为响应对象中的HTML代码。
接下来,需要使用BeautifulSoup库来解析HTML代码,提取出每张图片的URL,并使用requests库来下载图片:
```python
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')
img_tags = soup.find_all('img')
for i, img_tag in enumerate(img_tags):
img_url = img_tag['src']
img_data = requests.get(img_url).content
with open(f"cat_{i}.jpg", "wb") as f:
f.write(img_data)
```
其中,`soup`为解析后的HTML对象,使用`find_all`方法找到所有的`img`标签。然后遍历每个`img`标签,取出`src`属性作为图片的URL,使用requests库下载图片,并保存到本地。这里使用了`enumerate`函数来给每个图片命名,以防止同名文件被覆盖。
完整代码如下:
```python
import requests
from bs4 import BeautifulSoup
url = 'https://image.baidu.com/search/index?tn=baiduimage&word=cat'
response = requests.get(url)
html = response.text
soup = BeautifulSoup(html, 'html.parser')
img_tags = soup.find_all('img')
for i, img_tag in enumerate(img_tags):
img_url = img_tag['src']
img_data = requests.get(img_url).content
with open(f"cat_{i}.jpg", "wb") as f:
f.write(img_data)
```
注意:这种方式下载的图片可能会有重复或者不相关的图片,而且可能存在版权问题,请尊重他人的版权。
阅读全文