用python写一个爬取图片的程序
时间: 2023-03-08 08:58:51 浏览: 143
我可以为您编写一个用python写的爬取图片的程序。要实现这个功能,您可以使用Python的内置库urllib和BeautifulSoup,或者使用更高级的框架,比如Scrapy。另外,您还可以使用Python的图像处理库,如PIL,来处理图片。
相关问题
请用python写一个爬取图片的程序
好的,以下是用Python编写的爬取图片的程序示例:
```python
import requests
import os
# 设置保存图片的文件夹路径
SAVE_FOLDER = './images'
# 爬取图片的函数
def fetch_image(url):
response = requests.get(url)
if response.status_code == 200:
# 从url中获取图片的文件名,用于保存图片
filename = url.split('/')[-1]
filepath = os.path.join(SAVE_FOLDER, filename)
with open(filepath, 'wb') as f:
f.write(response.content)
print(f'Successfully downloaded {filename}!')
else:
print(f'Failed to download {url}!')
# 主程序入口
if __name__ == '__main__':
# 要爬取的图片链接列表,可以从任意网站中获取
image_urls = [
'https://www.example.com/image1.jpg',
'https://www.example.com/image2.jpg',
'https://www.example.com/image3.jpg',
]
# 如果保存图片的文件夹不存在,则创建文件夹
if not os.path.exists(SAVE_FOLDER):
os.makedirs(SAVE_FOLDER)
# 依次爬取每张图片
for url in image_urls:
fetch_image(url)
```
其中,`fetch_image`函数用于下载单张图片,`SAVE_FOLDER`变量用于指定保存图片的文件夹路径,`image_urls`变量包含了要爬取的图片链接。在运行程序之前,需要先将以上代码保存为一个`.py`文件,并且确保已经安装了`requests`库(可以通过`pip install requests`命令安装)。
如何用python写一个爬取网页 图片的程序
在Python中编写一个简单的网页图片爬虫,你可以使用requests库来获取网页内容,然后BeautifulSoup库解析HTML,定位到图片链接,最后使用urllib或者os模块下载图片。以下是一个基本的步骤:
1. 首先安装必要的库:
```
pip install requests beautifulsoup4
```
2. 爬取网页并解析HTML:
```python
import requests
from bs4 import BeautifulSoup
def fetch_images(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# 定义图片标签,例如最常见的<img>标签
img_tags = soup.find_all('img')
# 提取图片URL
image_urls = [img['src'] for img in img_tags if 'src' in img.attrs]
return image_urls
# 使用函数
url_to_crawl = "http://example.com" # 替换为你想要爬取的网站地址
image_links = fetch_images(url_to_crawl)
print(image_links)
```
3. 下载图片(这里我们使用os库):
```python
import os
def download_images(url_list, save_path):
if not os.path.exists(save_path):
os.makedirs(save_path)
for url in url_list:
filename = os.path.join(save_path, os.path.basename(url)) # 获取文件名
with open(filename, 'wb') as f:
response = requests.get(url, stream=True)
for chunk in response.iter_content(1024): # 分块下载
if chunk:
f.write(chunk)
# 设置保存路径
save_dir = "./images"
download_images(image_links, save_dir)
阅读全文