gpt4 book ai didi

python - 如何在 python 中检索网页,包括任何图像

转载 作者:太空狗 更新时间:2023-10-29 20:54:51 25 4
gpt4 key购买 nike

我正在尝试检索网页的来源,包括所有图像。目前我有这个:

import urllib

page = urllib.urlretrieve('http://127.0.0.1/myurl.php', 'urlgot.php')
print urlgot.php

可以很好地检索源,但我还需要下载任何链接的图像。

我在想我可以创建一个正则表达式来在下载的源代码中搜索 img src 或类似的东西;但是,我想知道是否有 urllib 函数也可以检索图像?类似于wget命令的:

wget -r --no-parent http://127.0.0.1/myurl.php

我不想使用 os 模块并运行 wget,因为我希望脚本在所有系统上运行。因此,我也不能使用任何第三方模块。

非常感谢任何帮助!谢谢

最佳答案

当 Python 内置了一个非常好的解析器时,不要使用正则表达式:

from urllib.request import urlretrieve  # Py2: from urllib
from html.parser import HTMLParser # Py2: from HTMLParser

base_url = 'http://127.0.0.1/'

class ImgParser(HTMLParser):
def __init__(self, *args, **kwargs):
self.downloads = []
HTMLParser.__init__(self, *args, **kwargs)

def handle_starttag(self, tag, attrs):
if tag == 'img':
for attr in attrs:
if attr[0] == 'src':
self.downloads.append(attr[1])

parser = ImgParser()
with open('test.html') as f:
# instead you could feed it the original url obj directly
parser.feed(f.read())

for path in parser.downloads:
url = base_url + path
print(url)
urlretrieve(url, path)

关于python - 如何在 python 中检索网页,包括任何图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7312687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com