多くの人々は、PythonのWebクローラ書かれていることで、自動化されたデータ収集ネットワークは、私たちはこの喜びを達成するのを助けるために非常に良い確かに楽しいことですが、とPython。しかし、爬虫類は、多くの場合、さまざまなログイン、認証邪魔に遭遇し、落胆人(ウェブサイト:毎日出会い爬虫類の様々な〜当社のウェブサイトをキャッチし、非常にイライラ人)。爬虫類と抗爬虫類は、1足歩先を、両方pesters猫とネズミのゲームです。
ステートレスなHTTPプロトコルなので、ログイン認証はクッキーを渡すことによって達成されます。一度ログインし、ブラウザのブラウザで保存されます、クッキーのログイン情報。あなたがサイトを次回開いたとき、自動的にクッキーを持って来るために保存されたブラウザは、クッキーは、ウェブサイトのために、あなたはまだログインしますが、有効期限が切れていません。
browsercookieモジュールは、ブラウザから保存されたクッキーを抽出するために、このようなツールです。これは非常に便利なツールの爬虫類で、内部のCookieJarオブジェクトにブラウザのクッキーをロードすることによって、あなたは簡単にコンテンツはログインが必要ですダウンロードすることができます。
インストール
pip install browsercookie
Windowsシステムでは、組み込みのsqliteのモジュールFireFoxのデータベースをロードする際には、エラーがスローされます。あなたはsqliteのバージョンを更新する必要があります。pip install pysqlite
使用
ここではタイトルページから抽出された例は次のとおりです。
>>>インポート再 >>> get_title =ラムダHTML:re.findall( '<タイトル>(*)</タイトル>。?'、HTML、フラグ= re.DOTALL)[0] .strip()
ここでは、ダウンロードの未登録状態の下でのタイトルは以下のとおりです。
>>>インポートurllib2の >>> URL = 'https://bitbucket.org/' >>>のpublic_html = urllib2.urlopen(URL).read() >>> get_title(public_htmlの) チームのための「GitリポジトリとMercurialのコード管理"
そして、browsercookieを使用Firefoxが中に入るダウンロードするには、ログインクッキーからのBitbucketを持っていました:
>>>インポートbrowsercookie >>> CJ = browsercookie.firefox() >>>オープナー= urllib2.build_opener(urllib2.HTTPCookieProcessor(CJ)) >>> login_html = opener.open(URL).read() >>> get_title (login_html) 「richardpenman /ホーム&mdash; Bitbucket」
上記は、Python2のpython3コードで、その後、試してみてください。
>>>インポートurllib.request >>>のpublic_html = urllib.request.urlopen(URL).read() >>>オープナー= urllib.request.build_opener(urllib.request.HTTPCookieProcessor(CJ))
あなたは成功したのFireFoxからクッキーをロードしbrowsercookieモジュールを示し、内部のタイトルに表示されるユーザー名を見ることができます。PythonのデータとPDFのセットを終えた小扁は、Pythonの学習教材を学ぶ必要があるグループに追加することができます:631 441 315、とにかくアイドルそれがアイドル状態である、~~たくさんの友人を学ぶ方が良いです
ここでは、クロームの内側からクッキーを読み込み、この時間は、もちろん、あなたがクロームのBitbucketと事前にログインする必要があり、例えば、使用要求であります:
>>>インポート要求 >>> CJ = browsercookie.chrome() >>> R = requests.get(URL、クッキー= CJ) >>> get_title(r.content) 「richardpenman /ホーム&mdash; Bitbucket」
あなたが知っていないか、ブラウザを気にしない場合は、あなたがこれを行うことができます必要なクッキーを持っています:
>>> CJ = browsercookie.load() >>> R = requests.get(URL、クッキー= CJ) >>> get_title(r.content) 「richardpenman /ホーム&mdash; Bitbucket」
サポート
現在、モジュールは次のプラットフォームをサポートします。
クローム:Linuxでは、OSX、Windowsの
Firefoxの:Linuxでは、OSX、Windowsの