python爬取百度图库图片
时间: 2024-12-23 16:23:22 浏览: 1
Python爬取百度图库图片
Python爬取百度图库(或其他网站的图片)通常需要使用到一些库,比如requests、BeautifulSoup(用于解析HTML)和os(保存文件)。以下是基本步骤:
1. **导入所需库**:
```python
import requests
from bs4 import BeautifulSoup
import os
```
2. **发送GET请求获取网页内容**:
```python
url = "https://image.baidu.com" # 百度图片搜索URL
headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.get(url, headers=headers)
```
3. **解析HTML**:
```python
soup = BeautifulSoup(response.text, 'html.parser')
image_links = soup.find_all('img', src=True) # 查找所有src属性的img元素
```
4. **检查权限并获取图片链接**:
需要注意的是百度图库的图片可能是有版权保护的,直接下载可能会存在问题。如果你有明确的使用许可,可以跳过这一步。通常需要处理防盗链问题,这里仅示例如何简单获取外链:
```python
real_links = [link['src'] for link in image_links if 'http' in link['src']]
```
5. **下载图片**:
```python
if not real_links:
print("No valid images found.")
else:
for i, img_link in enumerate(real_links):
response = requests.get(img_link, stream=True)
filename = f'image_{i}.jpg' # 或者从原URL提取信息作为文件名
with open(filename, 'wb') as f:
for chunk in response.iter_content(1024):
f.write(chunk)
print(f"Downloaded {filename}")
```
6. **保存图片**:
图片保存到本地目录,例如当前工作目录:
```python
save_dir = "."
if not os.path.exists(save_dir):
os.makedirs(save_dir)
```
7. **结束爬虫**:
```python
# 结束循环
```
注意:在实际操作时,遵守网站的robots.txt规则和法律法规,尊重版权,不要频繁或过度访问服务器,以免造成压力甚至被封IP。
阅读全文