paint-brush
Python Web Scraper を構築する的办法: 任意尺寸の Web サイトからデータをスクレイプする に@terieyenike
8,509 測定値
8,509 測定値

Python Web Scraper を構築する方法: 任意の Web サイトからデータをスクレイプする

Teri4m2022/09/08
Read on Terminal Reader
Read this story w/o Javascript

長すぎる; 読むには

Python では、Python スクリプトを使用して Web サイトからデータをスクレイピングまたはグラブできます。このデータ収集方法は、Web スクレイピングと呼ばれます。ほとんどの Web サイトは、ユーザーがデータをスクレイピングすることを望んでいません。スクレイピングが合法で許可されているものを確認するために、ウェブサイトには、許可されているエンドポイントの詳細を示す専用ページがあります。この演習では、ニュース コンテンツのホームページをスクレイピングします。これは、ユーザー エージェントに従って実行できます。スクリプト全体を作成すると、ページは YCombinator のニュース ホームページからデータをスクレイピングする必要があります。
featured image - Python Web Scraper を構築する方法: 任意の Web サイトからデータをスクレイプする
Teri HackerNoon profile picture
この記事では、Python スクリプトを选择して Web サイトからデータをスクレイピングまたはグラブできるプログラムを作为します。このデータ収集策略は、Web スクレイピングと呼ばれます。 Webスクレイピングとは、Pythonまたはその他のプログラミング言語をプログラムで利用して、Webページからデータをダウンロード、クリーニング、および利用することです。ほとんどの Web サイトは、データのスクレイピングを望んでいません。スクレイピングが违法で許可されているものを確認するために、ウェブサイトには、許可されているエンドポイントの詳細を示す専用ページがあります。リンクの最後に robots.txt を添付して、許可されているエンドポイントを確認します。たとえば、 を施用してみましょう。下のテキスト ファイルを用到すると、結果は次のようになります。
スクリーンショットには、YCombinator Web サイトからのスクレイピングが許可されているエンドポイントと許可されていないエンドポイントが示されています。クロールの遅延とは、プログラムを动用して Web サイトからデータをスクレイピングするときに一時止住することを预兆します。これにより、絶え間ないスクレイピングのためにサーバーに過負荷がかかり、Web サイトの进程が低することはありません。この演習では、ニュース コンテンツのホームページをスクレイピングします。これは、ユーザー エージェントに従って実行できます。

入門

Python Web スクレイパーには、データをスクレイピングするために必需な 2 つのモジュールが必需です。
  • 美しいスープ
  • リクエスト

美しいスープ

Beautiful Soup は、HTML ファイルからデータを吸出するための Python ライブラリです。パーサーを在使用してファイルを変更し、データを貴重なドキュメントに変換し、プログラマーの手動および反復作業の時間を節約します。

リクエスト

requests HTTP ライブラリは、Web サイトへのリンクを使用して HTML ファイルをダウンロードするためのものです。

 .get()
関数。

Web スクレーパーの作成

では、このプロジェクトの核心思想に迫ります。新しいディレクトリを弄成し、そこに Web スクレイパー プログラムのすべてのスクリプトを含むファイルを弄成します。次のコードをコピーして貼り付けます。
 # app.py import requests response = requests.get( '//news.ycombinator.com/news' ) yc_web_page = response.text print(yc_web_page)
上記のコードは次のことを行います。
  • のインポート
    requests
    モジュール
  • 応答変数を使用して、
     .get()
    機能は、提供された Web サイトのリンクから HTML ファイルをダウンロードします。
  • でウェブページのコンテンツを読む
    .text

コマンド python でこのコードを実行すると

app.py
出力はありません。これは、インポートされた 2 つのモジュールをインストールする必要があることを意味します。

次のコマンドを実行して、モジュールをインストールします。
 pip3 install requests pip install beautifulsoup4
ソース コードの結果は次のようになります。

次は更新してみましょう

app.py
美しいスープを使用して残りのコードを含むファイル:

 # main.py import requests from bs4 import BeautifulSoup # add this
response = requests.get( '//news.ycombinator.com/news' ) yc_web_page = response.text # add this 
soup = BeautifulSoup(yc_web_page, 'html.parser' ) article_tag = soup.find(name= "a" , class_= 'titlelink' ) article_title = article_tag.get_text() article_link = article_tag.get( 'href' ) article_upvote = soup.find(name= "span" , class_= "score" ).get_text() result = {  "title" : article_title,  "link" : article_link,  "point" : article_upvote } print(result)
上記のコード スニペットに従って、次の方法を行います。
  • モジュールbs4から BeautifulSoup 関数をインポートする
  • 次に、変数soupを使用して、
     yc_web_page
    BeautifulSoup 関数を使用し、
     html.parser
    HTMLファイルを取得するには

コードの残りの部分に進む前に、次のリンクを使用して Web ブラウザーを開きましょう。

 .get()

次に、ページを右クリックし、検査をクリックして、 YCombinatorニュース ページの要素タブを表示します。

Web ページは次のようになります。
Beautiful Soup を动用すると、ページ上の特定的の关键点をそのクラス名でターゲットにすることができます。
  • article_tag 変数を割り当てることにより、すべてのページ要素には、
     find()
    要素の名前タグ、および
    class_
    アンダースコア付き。これは、Web ページ上の要素のクラスが上書きされるのを防ぐために行われます。
  • ここで、リンク タイトルの 1 つを抽出します。
     article_tag
    を使用して
    .get_text()
    関数
  • 次に、のリンクを抽出します
    article_tag
    属性の使用
    href
    とともに
    .get()
    関数
  • 同じことが
    article_upvote
    変数、タグ名、
     <span>
    、およびクラス名は、各記事リンクのポイントを抽出するために使用されます
  • 抽出されたデータをキーと値のペアを持つディクショナリとして表示する変数結果を作成します
  • 最終結果を印刷する
スクリプト广大干部を記述すると、ページは YCombinator のニュース ホームページからデータをスクレイピングし、次のようになります。

結論

この記事では、Python Web スクレイパーを的使用して Web ページからデータを空出する策略を説明しました。また、Web スクレイパーを用到する機能は、手足業よりも速度快に大規模なデータ セットを做成する際の時間と労力を節約できることです。

もっと詳しく知る

바카라사이트 바카라사이트 온라인바카라