0

オフラインで表示する Web ページをダウンロードするための簡単な Python スクリプトを作成しました。問題は、相対リンクが壊れていることです。そのため、オフライン ファイル "c:\temp\webpage.html" には href="index.aspx" がありますが、ブラウザーで開くと、" ではなく "file:///C:/temp/index.aspx" に解決されます。http://myorginalwebsite.com/index.aspx ".

したがって、元の Web サイトを指すように各相対リンクを修正するために、スクリプトを変更する必要があると思います。もっと簡単な方法はありますか?そうでない場合、これを実行できるサンプルの Python コードを持っている人はいますか? 私はPythonの初心者なので、ポインタをいただければ幸いです。

ありがとう。

4

3 に答える 3

5

相対リンクでWebサイトを参照するだけの場合は、ヘッドにベースタグを追加するだけです。

<base href="http://myoriginalwebsite.com/" />
于 2010-08-31T18:24:19.920 に答える
1

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 をファイルとしてディスクに書き出すことができます。

于 2010-08-31T18:31:55.537 に答える
0

で始まるすべてのリンクをチェックし、文字列の先頭http://に追加したくないリンクをすべてチェックしhttp://myoriginalwebsite.comてから、接続をテストしますか?

簡単に聞こえます。それとも、問題を抱えているのは適切なpythonコードですか?

于 2010-08-31T18:22:20.293 に答える