我想从网页中抓取图像,问题是图像作为数据 URI 包含在源代码中。如何将它们保存到文件中? (我只需要从特定的抓取数据 URI 代码访问 URI 图像)
以下是如何从网页中提取数据 URI 并将图像保存到文件的步骤:
1. 使用喜欢的语言和库获取网页的 HTML 源代码。
-
例如,在 Python 中,可以使用
requests
库:```python import requests
url = 'https://example.com/your-webpage' response = requests.get(url) html_source = response.text ```
2. 从 HTML 源代码中提取数据 URI。
-
可以使用正则表达式或选择的语言中的字符串操作功能来实现这一点。 数据 URI 的格式为
data:[<mediatype>][;base64],<data>
。 -
例如,在 Python 中,可以使用
re
模块:```python import re
data_uri_pattern = r'data:image/(?:png|jpeg);base64,[a-zA-Z0-9+/]+=*' data_uris = re.findall(data_uri_pattern, html_source)
`` 这将找到所有
png或
jpeg` 数据 URI(可以根据需要修改此模式)。
3. 将数据 URI 解码并保存为图像文件。
- 数据 URI 通常使用 base64 编码。 可以使用选择的语言中的 base64 解码功能来解码数据。
-
例如,在 Python 中:
```python import base64
for i, data_uri in enumerate(data_uris): header, encoded = data_uri.split(",", 1) decoded = base64.b64decode(encoded)
image_type = header.split(";")[0].split("/")[1] with open(f'image_{i}.{image_type}', 'wb') as f: f.write(decoded)
`` 这会将每个数据 URI 解码为一个图像文件,文件名为
image_0.png、
image_1.jpg` 等(根据图像类型)。
其他提示:
- 确保在抓取网站之前查看其服务条款。
-
如果经常抓取数据 URI,使用诸如
BeautifulSoup
(Python)之类的 HTML 解析库可能会使该过程更容易、更强大。 -
可以使用
urllib.parse.urlparse
(Python)等库来验证数据 URI 的格式,然后再尝试解码。
这些步骤可以帮助从网页中提取和保存数据 URI 图像。
标签:python,web-scraping,uri From: 17308443