Semalt:PythonによるWebスクレイピング

Wi-Fiを利用できないときに、恐ろしい瞬間を経験しましたか。もしそうなら、あなたはあなたがあなたのコンピュータであなたがしていることのどれだけがネットに依存しているのかを理解しました。まったくの習慣から、自分のメールをチェックしたり、友達のInstagramの写真を見たり、ツイートを読んだりすることがわかります。

多くのコンピューター作業にはWebプロセスが含まれるため、プログラムもオンラインになると非常に便利です。これは、 Webスクレイピングの場合です。プログラムを使用して、Webからコンテンツをダウンロードして処理します。たとえば、Googleはさまざまなスクレイピングプログラムを使用して、検索エンジンのWebページにインデックスを付けています。

インターネットからデータこする方法はたくさんあります。これらのメソッドの多くは、PythonやRなどのさまざまなプログラミング言語のコマンドを必要とします。たとえば、Pythonでは、リクエスト、Beautiful soup、Webbrowser、Seleniumなどの多数のモジュールを利用できます。

「リクエスト」モジュールを使用すると、接続の問題、ネットワークエラー、データ圧縮などの難しい問題について心配する必要なく、ウェブからファイルを簡単にダウンロードできます。これは必ずしもPythonに付属しているわけではないため、最初にインストールする必要があります。

このモジュールが開発されたのは、Pythonの「urllib2」モジュールには多くの複雑な機能があり、使用が難しいためです。インストールは実際には非常に簡単です。あなたがしなければならないのは、コマンドラインからpip installリクエストを実行することだけです。次に、簡単なテストを行って、モジュールが正しくインストールされていることを確認する必要があります。そのためには、インタラクティブシェルに「>>> import requests」と入力します。エラーメッセージが表示されなければ、インストールは成功しています。

ページをダウンロードするには、「requests.get()」関数を開始する必要があります。この関数は、ダウンロードするURLの文字列を取得して、「応答」オブジェクトを返します。これには、リクエストに対してWebサーバーが返した応答が含まれます。リクエストが成功すると、ダウンロードされたWebページがレスポンスオブジェクトのテキスト変数に文字列として保存されます。

通常、応答オブジェクトにはステータスコード属性があり、これを使用してダウンロードが成功したかどうかを確認できます。同様に、応答オブジェクトで 'raise_for_status()'メソッドを呼び出すことができます。ファイルのダウンロード中にエラーが発生した場合は、例外が発生します。これは、不正なダウンロードが発生したときにプログラムが停止することを確認するための優れた方法です。

ここから、「open()」と「write()」の標準関数を使用して、ダウンロードしたWebファイルをハードドライブに保存できます。ただし、テキストのUnicodeエンコーディングを保持するには、テキストデータをバイナリデータに置き換える必要があります。

データをファイルに書き込むには、「iter_content()」メソッドで「for」ループを利用できます。このメソッドは、ループの各反復で大量のデータを返します。各バルクはバイト単位であり、各バルクに含まれるバイト数を指定する必要があります。書き込みが完了したら、 'close()'を呼び出してファイルを閉じます。これでジョブは終了です。