技術共有

Python リクエスト クローラー

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Python のリクエスト ライブラリは、HTTP リクエストを送信し、応答を処理するための強力で使いやすい HTTP ライブラリです。これは、Python で最も人気のある Web クローラー フレームワークの 1 つであり、Web ページからのデータの抽出、Web サイトのクロール、API 呼び出しの実行に広く使用されています。

リクエスト ライブラリを使用すると、GET、POST、PUT、DELETE などのさまざまな HTTP リクエストを簡単に送信できます。 HTTP リクエスト オブジェクトを作成し、リクエスト ヘッダー、リクエスト本文、およびその他のパラメータを設定して、リクエストを送信して応答を取得できます。 リクエスト ライブラリは、応答コンテンツの取得、JSON の解析、HTML の解析など、応答を処理するための便利なメソッドを多数提供します。

リクエストがローカルの Python 環境にインストールされていない場合は、コマンド プロンプト ウィンドウにコマンドを入力できます。

pip install requests

インストール要求モジュール

自由にWebページを開くことができます。F12->「Ctrl+R」を押して更新し、名前内の項目をダブルクリックします。

ユーザーエージェントとCookieが表示されます

以下は、一般的に使用されるリクエスト ライブラリの関数と使用法です。

  1. GET リクエストを送信します。

    response = requests.get(url)
    

  2. POST リクエストを送信します。

    response = requests.post(url, data=payload)
    

  3. リクエストヘッダーを設定します。

    1. headers = {'User-Agent': 'Mozilla/5.0'}
    2. response = requests.get(url, headers=headers)

  4. URL パラメーターを渡します。

    1. params = {'key1': 'value1', 'key2': 'value2'}
    2. response = requests.get(url, params=params)

  5. ファイルを送信:

    1. files = {'file': open('file.txt', 'rb')}
    2. response = requests.post(url, files=files)

  6. 応答内容を取得します。

    print(response.text)
    

  7. JSON 応答を解析します。

    json_data = response.json()
    

  8. HTML 応答を解析します。

    1. from bs4 import BeautifulSoup
    2. soup = BeautifulSoup(response.text, 'html.parser')

  9. 例外の処理:

    1. try:
    2. response = requests.get(url)
    3. response.raise_for_status()
    4. except requests.HTTPError as e:
    5. print('HTTPError:', e)
    6. except requests.ConnectionError as e:
    7. print('ConnectionError:', e)
    8. except requests.Timeout as e:
    9. print('Timeout:', e)
    10. except requests.RequestException as e:
    11. print('RequestException:', e)

上記はリクエスト ライブラリの機能のほんの一部であり、セッション管理、認証、プロキシ設定など、Web クローリングや API 呼び出しを簡単に行うのに役立つ他の多くの高度な機能やオプションも提供します。

リクエスト関数ルーチンを完了します。

  1. import requests
  2. def get_html(url):
  3. '''
  4. 两个参数
  5. :param url:统一资源定位符,请求网址
  6. :param headers:请求头
  7. :return html 网页的源码
  8. :return sess 创建的会话
  9. '''
  10. # 请求头
  11. headers={'User-Agent': '复制了放这里'}
  12. # 创建Session, 并使用Session的get请求网页
  13. sess = requests.Session()
  14. response = sess.get(url=url,headers = headers)
  15. # 获取网页信息文本
  16. html = response.text
  17. return html, sess