我编写了一个简单的 Python 脚本来下载网页以供离线查看。问题是相关链接已损坏。因此,脱机文件“c: emp\webpage.html”具有 href="index.aspx",但在浏览器中打开时,它解析为“file:///C:/temp/index.aspx”而不是“http://myorinalwebsite.com/index.aspx".

所以我想我必须修改我的脚本来修复每个相关链接,以便它指向原始网站。有更容易的方法吗?如果没有,谁有一些可以做到这一点的示例Python代码?我是一个 Python 新手,所以任何指点都将不胜感激。

谢谢。

有帮助吗?

解决方案

如果您只想让相对链接引用该网站,只需在头部添加一个基本标签:

<base href="http://myoriginalwebsite.com/" />

其他提示

lxml 让这个脑死亡变得简单!

>>> import lxml.html, urllib
>>> url = 'http://www.google.com/'
>>> e = lxml.html.parse(urllib.urlopen(url))
>>> e.xpath('//a/@href')[-4:]
['/intl/en/ads/', '/services/', '/intl/en/about.html', '/intl/en/privacy.html']
>>> e.getroot().make_links_absolute()
>>> e.xpath('//a/@href')[-4:]
['http://www.google.com/intl/en/ads/', 'http://www.google.com/services/', 'http://www.google.com/intl/en/about.html', 'http://www.google.com/intl/en/privacy.html']

从那里您可以将 DOM 作为文件写入磁盘。

所以你想检查所有以 http:// 但任何您不想附加的内容 http://myoriginalwebsite.com 到字符串的前面,然后测试连接?

听起来很容易。或者你遇到的问题是 python 代码正确吗?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top