python 通过txt文件中的url批量下载图片
时间: 2024-10-29 17:16:28 浏览: 26
python多线程批量访问url脚本
在Python中批量下载txt文件中的URL图片,你可以使用requests库获取网页内容,然后使用BeautifulSoup解析URLs,最后使用urllib或io模块下载图片。这里是一个简单的步骤说明:
1. 首先,你需要安装必要的库,可以使用pip安装:
```
pip install requests beautifulsoup4
```
2. 然后,创建一个函数来下载单张图片:
```python
import os
import requests
from bs4 import BeautifulSoup
def download_image(url):
response = requests.get(url)
img_data = response.content
filename = url.split("/")[-1]
with open(filename, 'wb') as f:
f.write(img_data)
return filename
```
3. 接下来,读取txt文件中的每个URL,下载并保存图片:
```python
def batch_download(urls_path):
with open(urls_path, 'r') as file:
urls = file.readlines()
for url in urls:
url = url.strip() # 移除行尾的换行符
if not url.startswith('http'):
print(f"忽略无效URL: {url}")
continue
try:
downloaded_file = download_image(url)
print(f"已下载: {downloaded_file}")
except Exception as e:
print(f"下载失败: {url}, 错误: {str(e)}")
# 使用函数,传入包含URL的txt文件路径
batch_download('urls.txt')
```
4. 最后,记得处理可能出现的网络错误或其他异常,并确保有适当的目录结构来存储下载的图片。
注意:实际操作时可能会遇到权限限制、服务器拒绝访问等问题,所以可能需要额外处理。
阅读全文