Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用htmlparse替换html文件(python)中的图像和css源URL_Python_Html Parsing - Fatal编程技术网

使用htmlparse替换html文件(python)中的图像和css源URL

使用htmlparse替换html文件(python)中的图像和css源URL,python,html-parsing,Python,Html Parsing,我正在尝试编写一个脚本来下载一个网页,包括所有的图片和样式表——也就是说,本地托管的版本看起来与原始版本完全相同 最初我只是下载图像,但现在我意识到我必须(当然)编辑html源代码,以便img src实际上指向本地托管的图像。由于我必须更改html源代码,因此我决定最好只更新本地托管的文件,以指向远程托管的图像和样式表 这就引出了我的问题,我可以使用htmlpasse搜索样式表和图像标记,然后用更新的版本替换它们的链接吗 我已经看过了htmlparse文档,但我对python还是相当陌生,所以有

我正在尝试编写一个脚本来下载一个网页,包括所有的图片和样式表——也就是说,本地托管的版本看起来与原始版本完全相同

最初我只是下载图像,但现在我意识到我必须(当然)编辑html源代码,以便img src实际上指向本地托管的图像。由于我必须更改html源代码,因此我决定最好只更新本地托管的文件,以指向远程托管的图像和样式表

这就引出了我的问题,我可以使用htmlpasse搜索样式表和图像标记,然后用更新的版本替换它们的链接吗

我已经看过了htmlparse文档,但我对python还是相当陌生,所以有些部分还不清楚。我认为可以使用:

HTMLParser.handle_data(data)
This method is called to process arbitrary data. It is intended to be overridden by a 
derived class; the base class implementation does nothing.
并添加我自己的替换类?还是我完全错了

当然,另一个选择是使用正则表达式搜索标记并替换标记后面的文本,但这可能会变得非常复杂,因此我想知道HTMLPase是否能提供一个更简单的解决方案

我意识到BeautifulSoup将是理想的解决方案,但我将在我的公司分发完成的工具,因此很遗憾,我不能使用任何第三方模块。类似地,我希望该工具与平台无关,因此很遗憾不能使用wget


感谢您的任何输入=)

如果您将Python程序打包为自包含的二进制文件(甚至不需要Python运行时),那么您可以随心所欲地使用任何模块:

我相信
wget-H-k-p
会做您想做的事情——无需自己编写代码。(请参阅)。我希望我可以使用wget,它会让生活变得更加轻松-不幸的是,我不希望这个工具也与平台无关。抱歉,我应该在最初的帖子中提到,我将对其进行编辑-为你的建议干杯=)据我所知,
wget
运行在Windows、Linux、Mac和几乎任何其他类似UNIX的平台上。如果你真的想自己编写代码,解析HTML页面是不够的——您还需要下载并解析页面的所有嵌入和外部样式表。这是真的,尽管它不是windows自带的-如果我找不到任何其他容易工作的东西,那么wget将是我认为最好的选择。谢谢