web-dev-qa-db-ja.com

HTMLページとそのコンテンツをダウンロードする

python htmlページ全体とそのコンテンツ(画像、CSS)をURLが指定されたローカルフォルダーにダウンロードする方法があります。ローカルhtmlファイルを更新してコンテンツをローカルに選択します。

39
bocca

urllib モジュールを使用して個々のURLをダウンロードできますが、これは単にデータを返します。 HTMLを解析せず、CSSファイルや画像などを自動的にダウンロードします。

「全体」ページをダウンロードする場合は、HTMLを解析し、ダウンロードする必要がある他のものを見つける必要があります。 Beautiful Soup のようなものを使用して、取得したHTMLを解析できます。

この質問 には、まさにそれを行うサンプルコードがあります。

35
Dave Webb

探しているのはミラーリングツールです。 Pythonで必要な場合、PyPIは spider.py をリストしますが、私はそれを経験していません。他の方が良いかもしれませんが、私は知りません- CSSの取得 と画像をサポートする 'wget'を使用します。これはおそらくあなたが望むことをします( マニュアル から引用)

1つのHTMLページのみを取得しますが、インラインイメージや外部スタイルシートなど、ページの表示に必要なすべての要素もダウンロードされていることを確認してください。また、ダウンロードしたページがダウンロードしたリンクを参照していることを確認してください。

wget -p --convert-links http://www.server.com/dir/page.html
11
Andrew Dalke

Urlibを使用できます。

import urllib.request

opener = urllib.request.FancyURLopener({})
url = "http://stackoverflow.com/"
f = opener.open(url)
content = f.read()
6
Lucas