python提取网页图片代码
时间: 2024-09-18 10:04:13 浏览: 72
在Python中,我们可以使用BeautifulSoup库结合requests库一起抓取网页上的图片。以下是一个基本的示例,展示如何从指定URL提取图片:
```python
import requests
from bs4 import BeautifulSoup
import os
def extract_images(url):
# 发送GET请求获取网页内容
response = requests.get(url)
# 使用BeautifulSoup解析HTML内容
soup = BeautifulSoup(response.text, 'html.parser')
# 查找所有的img标签
img_tags = soup.find_all('img')
# 创建保存图片的目录,如果不存在
if not os.path.exists('images'):
os.makedirs('images')
# 提取并下载图片
for img in img_tags:
img_url = img.get('src') or img['data-src'] # 获取图片链接,有些网站可能用data-src代替src
if img_url.startswith('//'): # 如果链接以//开头,转换为http://或https://
img_url = 'https:' + img_url
elif not img_url.startswith(('http://', 'https://')):
img_url = url + '/' + img_url # 补充完整URL
try:
with open(os.path.join('images', img_url.split('/')[-1]), 'wb') as f:
response = requests.get(img_url, stream=True) # 下载图片到本地
for chunk in response.iter_content(1024): # 分块读取,防止内存溢出
if chunk:
f.write(chunk)
f.flush()
except Exception as e:
print(f"Error downloading image {img_url}: {e}")
# 调用函数提取特定网页的图片
extract_images('http://example.com')
```
阅读全文