python爬取网页图片并放到指定文件夹
时间: 2024-10-18 07:18:28 浏览: 137
近期学了python爬虫,跟着老师做的项目,还有些问题
在Python中,可以使用requests库来获取网页内容,然后BeautifulSoup库解析HTML,找出所有的图片URL。PIL(Pillow)库则用于处理图片。以下是一个基本的步骤:
1. 导入所需库:
```python
import requests
from bs4 import BeautifulSoup
import os
import urllib.request
```
2. 定义函数来下载图片到指定文件夹:
```python
def download_image(url, save_path):
response = requests.get(url)
img_data = response.content
with open(save_path, 'wb') as f:
f.write(img_data)
def scrape_and_download_images(url, folder_path):
if not os.path.exists(folder_path):
os.makedirs(folder_path) # 创建文件夹,如果不存在
soup = BeautifulSoup(requests.get(url).text, 'html.parser')
img_tags = soup.find_all('img') # 查找所有img标签
for img in img_tags:
img_url = img['src'] or img['data-src']
if img_url and is_valid_image_url(img_url): # 检查URL是否有效
img_filename = os.path.join(folder_path, os.path.basename(img_url))
download_image(img_url, img_filename)
def is_valid_image_url(url):
return url.lower().startswith(('http://', 'https://')) and url.endswith(('.jpg', '.jpeg', '.png', '.gif'))
```
3. 使用函数:
```python
url = 'http://example.com' # 需要爬取的网页地址
folder_path = 'images_folder' # 图片保存的文件夹路径
scrape_and_download_images(url, folder_path)
```
这个例子会下载`url`页面上所有的图片到`folder_path`指定的文件夹下。
阅读全文