2

たとえば、コンテンツにアクセスするためにログインが必要なWebサイト(イントラネット上でも)を参照します。ブラウザ自体からログインするために必要なユーザー名、パスワード、キャプチャなどの必須フィールドに入力します。

サイトにログインすると、ログイン後に最初のページのいくつかのリンクやタブからこすり落とすことができるたくさんのグッズがあります。

さて、この時点から(つまり、ブラウザからログインした後)、ページを制御し、urllib2からダウンロードしたいと思います...ページごとに移動したり、各ページにPDFや画像をダウンロードしたりします。

urllib2(または機械化)からすべてを直接使用できることを理解しています(つまり、ページにログインしてすべてを実行します)。

ただし、一部のサイトでは、ログインメカニズム、必要な非表示パラメータ、リファラー、キャプチャ、Cookie、ポップアップを確認するのは非常に面倒です。

お知らせ下さい。私の質問が理にかなっていることを願っています。

要約すると、最初のログイン部分はWebブラウザーを使用して手動で実行する必要があります...次に、urllib2を介したスクレイピングの自動化を引き継ぎます。

4

2 に答える 2

4

cookielibモジュールを使用したい。

http://docs.python.org/library/cookielib.html

ブラウザを使用してログオンし、CookieをNetscapeスタイルのcookie.txtファイルにエクスポートできます。次に、Pythonからこれをロードし、必要なリソースをフェッチできるようになります。Cookieは、Webサイトがセッションの有効期限が切れるまで(多くの場合約30日)有効です。

import cookielib, urllib2
cj = cookielib.MozillaCookieJar()
cj.load('cookie.txt')
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
r = opener.open("http://example.com/resource")

この形式でCookieをエクスポートするChromeおよびFirefox用のアドオンがあります。例えば:

https://chrome.google.com/webstore/detail/lopabhfecdfhgogdbojmaicoicjekelh

https://addons.mozilla.org/en-US/firefox/addon/export-cookies/

于 2012-09-12T06:38:47.147 に答える
4

セレンを検討しましたか?これは、httpリクエスト(urllib2)ではなくブラウザの自動化に関するものであり、手順の合間にブラウザを操作できます。

于 2012-09-12T07:11:50.163 に答える