Pythonでスクレイピング

スクレイピングでヘッダー情報を付与する方法とその目的

今回は、前回試したスクリプトにヘッダー情報を加えたリクエストを投げれる様にしていきます。さらに、ヘッダーを利用する目的や何をセットするのかというところにも触れていきます。

前回記事

目次

  • Pythonでリクエストにヘッダーを付与する
  • ヘッダーを設定する目的
  • ヘッダーの種類
  • まとめ

Pythonでリクエストにヘッダーを付与する

前回、利用したスクリプトは以下のものでした。

実行した結果は、以下の様なものです

しかし、urlopenを使った時のデフォルトのヘッダーは以下の様なものになっています。

これでは少々不自然ですね。今回は、このヘッダー部分を設定するスクリプトを作成していきます。

1. requestsモジュールをインストールする

前回、ある特定のページデータを取ってくるのにurlopenという関数を使いました。今回は、リクエストにヘッダーを付与したいのでurlopenではなくrequestsモジュールを利用していきます。

pip3を使ってインストールします。

無事、インストールできたか確認します。エラーが発生しなければインストール成功です。

2. ヘッダーを付与する

先ほどインストールしたrequestsモジュールを読み込んでヘッダーをセットします。ヘッダーデータはChrome Inspectorのネットワークタブなどから確認できます。

上記のスクリプトを実行してみます。

すると、前回同様の結果を取得できると思います。これで、ヘッダーを付与したリクエストでページデータ取得ができました。

ヘッダーを設定する目的

ヘッダーを設定する目的は、「端末やリージョンごとの異なる結果を取得する」「人間らしい振る舞いをする」などが挙げられます。

リクエストを受け取るサーバー側は、不自然なヘッダーのリクエストがきたら怪しいリクエストだと認識して必要に応じてブロックするなどの処理をします。悪意のあるリクエストがきた時、それを全てを処理していたらサーバーを攻撃されてしまう恐れがあるためです。

ヘッダーの種類

基本的なヘッダーとして以下の様なものが挙げられます。これらは、どのブラウザでも基本的に設定されている値です。

Headers: Host, Connection, Accept, User-Agent, Referrer, Accept-Encoding, Accept-Language

まとめ

今回は、スクレイピングスクリプトにヘッダーを付与する方法を紹介しました。スクレイピングで悪意のあるリクエストを送ることはダメですが、スクレイピングする上でヘッダーを設定することは重要です。正しい容量・用法を守った上で利用してみてください。

今回は、こちらの本を参考にしています。
PythonによるWebスクレイピング

Related post

  1. iOSアプリ開発

    xcconfigを使って本番とテスト環境を切り替える方法

    iOSアプリを開発していると、本番の環境とテストする環境を切り替えて開…

  2. テクノロジー

    IBDesignable、IBInspectableを使ってStoryboardでデザインする方法

    iOSアプリ開発をStoryboardを使って開発している方も増えてき…

  3. テクノロジー

    iOSアプリ開発が簡単にできるStoryboard入門

    iOSアプリを開発しようとXcodeをダウンロードしてプロジェクト作成…

  4. テクノロジー

    CSSによるセンタリングの方法と注意点についてのまとめ

    HTMLとかCSSの勉強を始めると、divやsectionなどで作った…

  5. Pythonでスクレイピング

    BeautifulSoup4でid, classを持つDOMを取得して効率化しよう!

    前回は、"スクレイピングでヘッダー情報を付与する方法とその目的"を紹介…

  6. iOSアプリ開発

    iOSアプリ初心者が覚えておきたい10のUIクラス

    iOSアプリを開発したいけど、最初は何を知っていたら開発できるのかわか…

PAGE TOP