python利用正则表达式实现图片自动下载
时间: 2024-11-27 18:11:32 浏览: 19
在Python中,我们可以使用`requests`库获取图片的URL,然后结合`re`(正则表达式)库来匹配网页中的图片链接,并使用`os`库将图片保存到本地。以下是一个简单的步骤说明:
1. 首先,安装必要的库如果尚未安装:
```bash
pip install requests beautifulsoup4
```
2. 使用`requests`获取网页内容:
```python
import requests
url = "目标网页地址"
response = requests.get(url)
html_content = response.text
```
3. 然后使用`BeautifulSoup`解析HTML,提取图片链接。这里假设图片链接都在`<img>`标签内:
```python
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_content, 'html.parser')
image_links = soup.find_all('img', src=True) # 查找src属性存在并非空的<img>标签
image_urls = [link['src'] for link in image_links]
```
4. 使用正则表达式处理链接,去除URL中的相对路径部分,使其变成完整的下载地址:
```python
import re
def make_absolute_url(base, url):
return base + url if not url.startswith('http') else url
absolute_image_urls = [make_absolute_url(response.url, img_url) for img_url in image_urls]
```
5. 最后,使用`urllib`或`wget`下载图片:
```python
import urllib.request
for img_url in absolute_image_urls:
filename = img_url.split('/')[-1] # 获取文件名
with urllib.request.urlopen(img_url) as img_response, open(filename, 'wb') as f:
f.write(img_response.read())
```
阅读全文