クローラアナログ・ブラウザ・インスタンス分析Pythonの両方の方法

この記事では、爬虫類のシミュレートブラウザのpython二つの方法の例を示します。以下のように、ご参考のためにあなたに共有します:

サイトには、抗爬虫類の設定をしたので、サイトをクロール403匹の爬虫類は、表示されます

A、遊牧民プロパティ

クロールCSDNブログ

import urllib.request
url = "http://blog.csdn.net/hurmishine/article/details/71708030"file = urllib.request.urlopen(url)

クロール結果

urllib.error.HTTPError: HTTP Error 403: Forbidden

これは他の人に悪意のクロール情報を防ぐために、CSDNは、いくつかの設定を行って説明します

それでは、私たちは、爬虫類アナログブラウザに取得する必要があります

任意のオープンな百度を開くなど、AのWebページ、その後、F12キーを押し、ウィンドウが表示されます、我々は以下、すなわち図、左「www.baidu.com」のにポップアップボックスを選択し、[ネットワーク]タブに切り替え、[更新サイトをクリックしてくださいショー:ここに画像を挿入説明
ダウンドラッグは、我々はそれは我々が何をしたいのですはい、情報「のUser-Agent」という言葉の束が表示されます。私たちは、それをコピーします。
この時点で、我々が得る情報は以下のとおりです。「Mozillaの/ 5.0(Windows NTの 10.0; WOW64)のAppleWebKit / 537.36(ヤモリのようにKHTML、)クローム/ 58.0.3029.110サファリ/ 537.36」
その後、我々は、シミュレートブラウザアクセスする2つの方法を使用することができますページ。

第二に、方法1:使用する - build_opener()ヘッダを変更します

urlopenので、()私たちは、ヘッダーを変更する必要があるので、HTTPの高度な機能の一部をサポートしていません。あなたが行わurllib.request.build_openerを()を使用することができ、我々は上記のコードを変更します。

import urllib.request
url = "http://blog.csdn.net/hurmishine/article/details/71708030"headers = ("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36")
opener = urllib.request.build_opener()
opener.addheaders = [headers]
data = opener.open(url).read()
print(data)

上記のコードは、我々は最初の定義フォーマット(「ユーザーエージェント」、具体的な情報)、ユーザエージェント情報を格納する変数のヘッダーを定義する
他のサイトをクロールした後、一度、当社既に取得に関する特定の情報についての情報へのこのアクセスをまた、我々が保存できるように、使用することができ、私はいつもF12のために見ていません。

我々()urllib.request.build_openerオープナーとオープナーに割り当てられ、次にセットaddheadersオープナーとカスタムオブジェクトを作成するヘッダ情報に対応して設定され、フォーマットは「オープナー(オブジェクト名).addheaders = [ヘッダ情報(その具体的な情報私たちの店)]」、我々は対応するURLを開くにはopen()メソッドを使用することができるオープナーオブジェクトの後に設定。フォーマット:「オープナー(オブジェクト名).open(URLアドレス)」私たちは、オープン、読み取りを使用することができます()メソッドは、対応するデータを読み出し、データ変数に代入します。

出力を取得

b'\r\n<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r\n     \r\n    <html xmlns="http://www.w3.org/1999/xhtml">\r\n    \r\n<head>  \r\n\r\n            <link rel="canonical" href="http://blog.csdn.net/hurmishine/article/details/71708030" rel="external nofollow" /> ...

第三に、方法2:使用はadd_header()ヘッダを付加

これに加えて、上記方法は、()アナログブラウザの実装でurllib.request.Requestはadd_header()を使用することができます。

コードの最初の

import urllib.request
url = "http://blog.csdn.net/hurmishine/article/details/71708030"req = urllib.request.Request(url)
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36')
data = urllib.request.urlopen(req).read()
print(data)

さて、私たちは分析することがあります。

urllib.request.Request(URLアドレス):インポートパッケージ、我々はurllib.request.Request(URL)を使用すると言うことはできませんURLアドレスを定義したRequestオブジェクトを作成し、変数REQに割り当てられ、Requestオブジェクトのフォーマットを作成

要求(オブジェクト名).add_header(「オブジェクト名」、「目標値」):その後、我々は形式に対応するヘッダ情報を付加するのはadd_header()メソッドを使用し

今、私たちは、ヘッダーを設定して、その後、我々は、対応するWebサイトを開くには、Requestオブジェクトを開くために)(urlopen使用することを、私たちは、主に使用

データ= urllib.request.urlopen(REQ).read()に対応するURLを開いて、ページの内容を読み取り、データ変数に代入します。

誰もが、リソースの収集を学ぶ非常に広いのpythonをお勧めし、ために私は、あなたへの書き込み入力する]をクリックし、共有の経験に学ぶ前に、上級プログラマがあり、研究ノート、ビジネス経験の可能性がある、と皆のために注意深くのpythonゼロを整理しますコメントする必要があることに細部を学ぶ実際のプロジェクトデータ、最新の技術上のあなたに、毎日のpython、見通しの根拠、
上記は、我々は避けるために、オープンウェブサイトへの爬虫類シミュレーションブラウザを達成し、コンテンツ情報のウェブサイトを取得するために2つのメソッドを使用403エラー。
価値使用される方法は、1 addHeaders(であることに注意
)方法、使用方法ははadd_header()メソッドは存在の終わり又は非存在下および存在下の差は、S下線音符であります

公開された38元の記事 ウォン称賛26 ビュー40000 +

おすすめ

転載: blog.csdn.net/haoxun09/article/details/104741266