MENU
  • ホーム
  • プログラミング
  • ワードプレス
    • プラグインプラグイン関連記事
    • 賢威賢威のカスタマイズ
    • CSSCSSの関連記事
  • サイト情報
    • プライバシーポリシー
  • ツール
    • メルエディター
    • フリマスパイダー – 疾風
    • フリマスパイダー
    • -ポイ活くんα-
  • お問い合わせ
あらゆるモノにHackする、探究者の読み物。
Let's Hack Tech
  • ホーム
  • プログラミング
  • ワードプレス
    • プラグインプラグイン関連記事
    • 賢威賢威のカスタマイズ
    • CSSCSSの関連記事
  • サイト情報
    • プライバシーポリシー
  • ツール
    • メルエディター
    • フリマスパイダー – 疾風
    • フリマスパイダー
    • -ポイ活くんα-
  • お問い合わせ
Let's Hack Tech
  • ホーム
  • プログラミング
  • ワードプレス
    • プラグインプラグイン関連記事
    • 賢威賢威のカスタマイズ
    • CSSCSSの関連記事
  • サイト情報
    • プライバシーポリシー
  • ツール
    • メルエディター
    • フリマスパイダー – 疾風
    • フリマスパイダー
    • -ポイ活くんα-
  • お問い合わせ
  1. ホーム
  2. プログラミング
  3. 言語別
  4. Python
  5. 【Pythonスクレイピング入門】Requestsモジュールを使ったHTTPリクエスト

【Pythonスクレイピング入門】Requestsモジュールを使ったHTTPリクエスト

2022 5/23
Python
2019-01-062022-05-23
目次

必要なもの

  • requests

Pythonスクレイピングライブラリはいくつかあり、標準でもurllibというのが搭載されています。とりあえず手軽なこともあり、標準のurllibよりrequestsの方が色々使いやすいのでこっちをオススメします。Anacondaをインストールしている場合は最初から入っていますがそうでない場合はpipからインストール可能ですので、ご用意ください。

$ sudo pip install requests

これで一発インストールOK

requestsの基本構文

requestsでは様々なHTTPリクエストをかけることができます。

よく使うのはgetやpostですがheadやput、deleteなども可能です。使った記憶はないですが。

今回は入門編ということでgetリクエストを送ってみます。

構文

基本の構文は以下の通り。

requests.get(url(,params))

必須の引数はURLのみでその他のパラメータは省略可能です。

その他パラメータ例

  • proxies
  • headers

実践

HTTPリクエストを送ってみる

import requests

url='https://www.yahoo.co.jp'
res=requests.get(url)

たった3行です。

超簡単ですね。

上記コード実行で res という変数にreqeustsのレスポンスのオブジェクトが格納されています。

上記例のコードではヤフーのトップページにアクセスしています。

res変数の中身を色々見ていきましょう。

レスポンス

下記は対話式で実行していますので、printは省略されています。

res
Out: <Response [200]>

レスポンスオブジェクト単体を出力するとステータスが返ってきます。

ちなみにこれをif文に渡すとTrueになります。500台や400台のステータスの場合はFalseとなります。

res.status_code
Out: 200

.status_codeを付けるとコードの数字のみがint型で返ってきます

res.headers
Out: {'Date': 'Sun, 03 Mar 2019 19:58:52 GMT', 'P3P': 'policyref="http://privacy.yahoo.co.jp/w3c/p3p_jp.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"', 'X-Content-Type-Options': 'nosniff', 'X-XSS-Protection': '1; mode=block', 'X-Frame-Options': 'SAMEORIGIN', 'Vary': 'Accept-Encoding', 'Content-Encoding': 'gzip', 'Expires': '-1', 'Pragma': 'no-cache', 'Cache-Control': 'private, no-cache, no-store, must-revalidate', 'Content-Length': '4937', 'Content-Type': 'text/html; charset=UTF-8', 'Age': '0', 'Connection': 'keep-alive', 'Via': 'http/1.1 edge1678.img.bbt.yahoo.co.jp (ApacheTrafficServer [c sSf ])', 'Server': 'ATS', 'Set-Cookie': 'TLS=v=1.2&r=1; path=/; domain=.yahoo.co.jp; Secure'}

.headersでレスポンスヘッダを返します。

res.text
Out: '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">n<html>n<head>n<meta http-equiv="content-type" content="text/html; charset=utf-8">n<meta http-equiv="content-style-type" content="text/css">n<meta http-equiv="content-script-type" content="text/javascript">n<meta name="description" content="日本最大級のポータルサイト。検索、オークション、ニュース、メール、コミュニティ、ショッピング、など80以上のサービスを展開。あなたの生活をより豊かにする「ライフ・エンジン」を目指していきます。">n<meta name="robots" content="noodp">n<meta name="google-site-verification"...以下省略

.textでhtmlの中身を丸ごとstr型で返します。

res.content
Out: b'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">n<html>n<head>n<meta http-equiv="content-type" content="text/html; charset=utf-8">n<meta http-equiv="content-style-type" content="text/css">n<meta http-equiv="content-script-type" content="text/javascript">n<meta name="description" content="xe6x97xa5xe6x9cxacxe6x9cx80xe5xa4xa7xe7xb4x9axe3x81xaexe3x83x9dxe3x83xbcxe3x82xbfxe3x83xabxe3x82xb5xe3x82xa4xe3x83x88xe3x80x82xe6xa4x9cxe7xb4xa2xe3x80x81xe3x82xaaxe3x83xbcxe3x82xafxe3x82xb7xe3x83xa7xe3x83xb3xe3x80...以下省略

一見 .text と同じように見えますが、途中から、よくわからない文字列になってます。.contentはhtmlの中身をbytes型で返します。

まとめ

なんかスゲー簡単に、スゲー色々出来そう感が伝わればOKです。

次の記事

Let's Hack Tech
【Pythonスクレイピング入門】Chromeデベロッパツールで抜き出したいHTMLを解析する方法 | Let's Hack Tech 事前準備 requestsでヤフーのトップページにGETリクエストを送ってレスポンスを取得できたと思います。 import requests url='https://www.yahoo.co.jp' res=requests.get(...
Python
Python requests スクレイピング
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする コメントをキャンセル

email confirm*

post date*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

シンプル美と機能性を両立させた、国内最高峰のWordPressテーマ『SWELL』
人気記事
  • IQテストいくつか受けてみました
    ネット上で信憑性がありそうなIQテスト、5種類まとめて受けた結果…
  • hayate
    メルカリの商品を世界最速で購入するためだけのアラートツール
  • 【Python】BeautifulSoupの使い方・基本メソッド一覧|スクレイピング
  • Pythonファイルのexe化
    【悲報】PyInstallerさん、300MBのexeファイルを吐き出すようになる
  • Amazon Echo アレクサのコマンドまとめ
    AmazonEchoの使い方とできる事、アレクサへの指示コマンド一覧
最近の投稿
  • 正規表現処理の濁点でハマった話2024-12-12
  • 保護中: 疾風v2更新履歴2024-05-31
  • 【自営・経営者向け・税金も】クレジットカードガチ勢による最強クレカ解説2023-10-23
  • PyQt5 QListWidget の item削除でtextBoxのフォーカスが奪われる2023-03-05
  • WordPressからのメールが届かない時の調査と解決法2023-02-27
目次
目次