python爬虫自动爬取图片
时间: 2024-07-31 21:01:38 浏览: 131
Python爬虫抓取图片通常涉及使用一些网络请求库如`requests`,以及图像处理库例如`PIL`或`io`。以下是一个简单的步骤概述:
1. **导入必要的库**:
- `requests`用于发送HTTP请求获取网页内容。
- `BeautifulSoup`或`lxml`处理HTML文档,提取需要的图片链接。
- `os`用于文件操作,比如保存图片到本地。
2. **发送GET请求**:
使用`requests.get(url)`获取目标网页的HTML源码。
3. **解析HTML**:
使用BeautifulSoup解析HTML,通过查找`<img>`标签找到图片的`src`属性(URL)。
4. **下载图片**:
对于每个找到的图片URL,使用`response.content`获取二进制数据,然后保存到本地。如果图片有特定的名称,可以使用`url.split('/')[-1]`获取文件名。
5. **错误处理**:
需要处理可能出现的网络异常、权限问题等,并确保文件保存路径正确。
示例代码片段:
```python
import requests
from bs4 import BeautifulSoup
import os
def download_images(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
img_tags = soup.find_all('img')
for img_tag in img_tags:
img_url = img_tag['src']
file_name = img_url.split('/')[-1]
# 创建图片保存目录(若不存在)
if not os.path.exists('images'):
os.makedirs('images')
# 下载并保存图片
try:
with open(os.path.join('images', file_name), 'wb') as f:
f.write(requests.get(img_url).content)
print(f'Successfully downloaded {file_name}')
except Exception as e:
print(f'Error downloading {file_name}: {e}')
# 调用函数,传入你想爬取图片的网站地址
download_images('http://example.com')
```
阅读全文