Pythonはレンタルデータインスタンスをクロール、小さな爬虫類の例エントリであると言われています!

まず、爬虫類ものです

また、「ウェブクローラ」として知られている爬虫類は、自動的にインターネットやウェブコンテンツのダウンロードされたプログラムにアクセスする機能です。百度とGoogleは、インターネット上の膨大な量の情報を取得するために、強力なウェブクローラであり、ユーザーが品質の検索サービスを提供するために、その後、クラウドに保存されているようにそれは、また、検索エンジンの基礎です。

第二に、使用爬虫類ものです

あなたは、検索エンジンの会社をやってに加えて、爬虫類はそれが何であるか、使用を学ぶ、と言うかもしれませんか?ハハ、誰かが最終的にはポイントに尋ねました。類推それは:会社がユーザーフォーラムを構築し、多くのユーザーはそうで、自分の経験と話してフォーラムにメッセージを残します。今準備中の製品アップデートの次の反復のために、利用者の嗜好を分析し、ユーザーのニーズを理解する必要があります。だから、データを取得する方法を、もちろん、フォーラムからわずかウェブクローラを取得する必要があります。だから、Baiduは、GOOGLEに加えて、多くの企業が給与にエンジニアの爬虫類を雇っています。あなた「爬虫類のエンジニアは」仕事と給料の数を見て、どんな現場での検索にはどのように人気のあるクローラを理解することの範囲です。

第三に、爬虫類の原則

開始要求:応答先サイトのサーバの要求(リクエスト)を待つを送信するためにHTTPプロトコルを介して標的部位。

コンテンツ取得応答:サーバーが正常な応答することができた場合は、応答を取得します。応答内容はように、応答の内容は、HTML、JSON文字列、(画像など)のバイナリデータであってもよい取り込みたいページの内容である、と。

分析コンテンツは:コンテンツは、HTMLによって得ることができる正規表現を解決することができ、ページの構文解析ライブラリ、JSONであってもよい、直接JSONオブジェクトを解析するために変換することができる。バイナリデータであってもよいし、さらなる処理のために保存することができます。

データストレージ:データ解析が完了した後、保存されます。テキストドキュメントをデータベースに保存することができますよう両方を節約することができます。

四、Pythonの爬虫類例

情報爬虫類の定義の前に導入され、原則としての役割は、私は小さなパートナーの多くは爬虫類に興味があることを始めて、それを試して準備ができているがあると信じています。そして今、「ドライ」の上、Pythonコードの爬虫類のシンプルな一枚を貼り付けする準備ができて:

1.準備作業:Python環境をインストールし、PYCHARMは、ソフトウェアをインストールし、MySQLデータベース、新しいデータベース・試験、爬虫類家の結果を格納するために使用されるテーブルの構成で試験[SQL文のインストール:表の家(価格はvarchar(88)を作成し単位はvarchar(88)、領域VARCHAR(88));]

2.爬虫類の目標:単位面積あたりの価格をクロールし、オンラインリスト内のすべてのリンクを家を借りるし、データベースへのクローラの構造を保存します。

3.爬虫類のソースコード:以下の

インポート要求#のリクエストURLのページコンテンツ

から BS4 インポート BeautifulSoup ページ要素を取得

インポート pymysql #のリンクデータベース

のインポート#の時間関数

のインポート lxmlののの構文解析ライブラリー(HTML \のXML解析のためのサポート、サポートXPATH解析)

#1 、GETのリクエストによって:get_page機能の役割をその後、取得したリンクされたコンテンツのURLの方法、およびBeautifulSoup処理可能な形式に統合

DEF get_page(URL):

応答 = requests.get(URL)

スープ = BeautifulSoup(response.text、lxmlの

を返すスープ

#のアクションget_links機能を:ゲットすべての賃借人のリンクのリスト

DEFのget_links(LINK_URL):

スープは = (LINK_URL)get_pageを

links_div = soup.find_all(' div要素'、class_が= " PIC-パネル" 

リンク [div.a.get(= ' HREF 'のためのdiv links_div] 

リターンリンク

#の価格、ユニット、エリアなど:賃貸情報のページを取得:get_house_info機能の役割はにある

DEF get_house_info(house_url):

スープ = get_page(house_url)

価格。 = soup.find(' スパン'、class_が= ' 合計').textの

ユニット = soup.find(スパン、class_が= ユニット).text.strip()

面積 = テスト このエリアには、我々はテストするためのフィールドテストカスタマイズ

情報 = { 

価格:価格、

単位:単位、

領域:面積

} 

戻り

#の構成情報は、データベースに辞書に書き込まれ

、データベース = { 

ホスト127.0.0.1 

'データベース'' 試験' ' ユーザー'' ルート' ' パスワード'' ルート' ' 文字セット'' utf8mb4 " } #のリンクデータベースのDEFのget_db(設定):リターン pymysql.connect(** 設定)得られたデータベースクローラにデータを挿入DEF 挿入(DB、ハウス): = " '{}'、" * 2 + "「{} 


















sql_values = values.format(ハウス[ ' 価格' ]、ハウス[ ' 単位' ]、ハウス[ ' 領域' ])

SQL = "" " 

INSERT INTOハウス(価格、ユニット、エリア)の値({})

" "" .format(sql_values)

カーソル = db.cursor()

cursor.execute(SQL)

db.commit() 

メインプロセス:1. 2.データベースへの接続最初のループ3.FORからURLの個々のリストのリストを取得しますURLデータベースに1で開始取得特定の情報(価格など)4. 1をリスト(のpython学習交換基631 441 315)

デシベル = get_db(データベース)

リンク = get_links(https://bj.lianjia.com/zufang/ 

についてリンクでのリンク:

time.sleep( 2 
 = get_house_info(リンク)

を挿入(デシベル、家)

 

まず、Pythonのクローラーで書かれた「工欲善其事必先利其器」は、同じ理由で、爬虫類を書き込むプロセスは、ファイルライブラリの多様性をインポートする必要があり、そして私たちは爬虫類の完了を支援するために、これらの便利なライブラリです作品のほとんどは、私たちはすることができ、関連する機能の移転のための言い訳を必要としています。インポート形式は、インポート・ライブラリーのファイル名です。これは、ここで注意しなければならない、カーソルがライブラリ・ファイル名、プレスCTRL + ALTにインストールするための重要な手段を配置することができ、PYCHARMでライブラリをインストールすることで、ライン(ピップは、ライブラリファイル名をインストール)がインストールされている、場合に命令することができますインストールが失敗した場合や、インストールされていない場合、フォローアッププログラムは確かに爬虫類のエラーになります。このコードでは、5つの要素は、プログラムに関連するライブラリの前に導入されている:URLページのコンテンツを要求するための要求を、BeautifulSoupは、ページ要素を解析するために使用;データベースに接続pymysql;時間は、様々な時間関数が含まれ、lxmlのは、構文解析ライブラリですファイルのHTML、XML形式が、それを解析するためにもXPATH解析をサポートしています。

第二に、私たちは、爬虫類の最後のメインプログラムコードからプロセス全体を見始めます。

データベースに接続することによりGet_db機能。深いget_db機能に、データベース接続がconnect関数Pymysqlを呼び出すことによって達成され見ることができます。そして、ここで** SETINGはPythonのキーワード引数を収集するための方法である、我々は、データベース接続情報が辞書データベースに書き込まれます置きますレーンは、辞書の情報は、引数を作るために接続します。

get_linksでは、すべてのホームネットワークの賃貸住宅物件のチェーンへのリンクのために機能します。リスト形式ですべてのリストの存在下でのリンクをリンクします。get_linksはリクエストにより、ホームネットワークのホーム・ページ要求の連鎖の内容を取得するために機能し、それが処理できる形式に、BeautifuSoupインターフェース・フォーマットでコンテンツを整理します。最後に、(つまり、href属性の内容である)すべてのdivのスタイルは、電気泳動find_all機能によって画像が含まれており、その後、コンテンツのハイパーリンク]タブ(A)を取得するために見つけるすべてのdivのスタイルは、ループのために、すべてのハイパーリンクがに格納されて含まれていリンクのリストインチ
FORループを介してそれを通してリンク内のすべてのリンク(リンクの1つがあるような:https://bj.lianjia.com/zufang/101101570737.html

検索機能要素の位置を使用してユニット、エリア情報ごとに、価格3)リンクを得る、同じ方法及び2)を使用して、この情報は、内部辞書情報に書き込まれます。

家にデータベース表に結果の情報の情報にリンクを挿入する関数を呼び出します。ディープinsert関数に、我々はそれがカーソル機能カーソルデータベース()し、応答機能を実現するためにデータベース操作をコミットすることによって、SQLステートメントの実装次第であることを知ることができます。ここでは、SQL文の文言は、これは、多重化機能を容易にするために行われ、形式にフォーマット機能を使用して、かなり特殊です。

最後に、爬虫類のコードを実行するには、データに書き込まれているすべてのリストのホームネットワークホームの連鎖を見ることができます。(注:テストI手動で指定されたテスト文字列)

 

image.png
 

追伸:実際には、Pythonは難しい爬虫類、全体のプロセスに精通した後、爬虫類ではないので、上のSQL文とを構築する方法は、そのようなページ要素を取得する方法として、いくつかの詳細に注意を払う必要があります。問題を抱えてパニックしないでください、私たちは最終的に期待される構造を取得し、1 BUGずつを一掃することができますIDEのヒントを参照してください。

おすすめ

転載: www.cnblogs.com/qingdeng123/p/11299528.html