38日目Crawler_requestsモジュール

紹介する

Pythonで実装されたWebクローラーには、ネットワーク要求を送信するための2つのモジュールがあり、1つ目はurllibモジュールで、2つ目は要求モジュールです。urllibモジュールは比較的古いモジュールであり、使用するのが面倒で不便です。requestsモジュールが出現すると、すぐにurllibモジュールが置き換えられたため、コースでは、requestsモジュールを使用することをお勧めします。

リクエスト人間が安全に楽しむことができる、遺伝子改変されていない唯一のPython HTTPライブラリ。

警告:他のHTTPライブラリを専門家以外で使用すると、セキュリティ上の欠陥、冗長なコード、車輪の再発明、ニブル、うつ病、頭痛、さらには死に至る危険な副作用が発生する可能性があります。

 

リクエストとは

要求モジュールは、PythonのネイティブなWebベースの要求モジュールであり、その主な機能は、ブラウザーをシミュレートして要求を開始することです。強力でシンプルで効率的な使用法。爬虫類の分野では、国の半分を占めています。

 

リクエストモジュールを使用する理由

urllibモジュールを使用する場合、以下のように要約される多くの不便があります:

1. URLエンコーディングを手動で処理する

2.リクエスト後のパラメータを手動で処理する

3. Cookieとプロキシ操作の扱いにくい処理



 

リクエストモジュールを使用します。

1. URLエンコーディングを自動的に処理する

2.リクエスト後のパラメータを自動的に処理する

3. Cookieとプロキシ操作を簡素化する



 

 

リクエストモジュールの使い方

 

環境インストール: pipインストール要求

使用プロセス/コーディングプロセス

1、指定url

2.リクエストモジュールに基づいてリクエストを開始する

3.応答オブジェクトのデータ値を取得します

4.永続的なストレージ

 

ケース:クローラープログラム

ケース1:シンプルなWebページコレクター

WD =入力(' >>> ' 
PARAM = {
     ' WD ' :WD 
} 
URL = ' http://www.baidu.com/baidu ' 
UA伪装 
ヘッダ= {
     ' のUser-Agent '' のMozilla / 5.0 (Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML、like Gecko)Chrome / 80.0.3987.149 Safari / 537.36 OPR / 67.0.3575.115(Edition B2)' 
} 
info = requests.get(url = url、params = param 、headers = ヘッダー)
info_text = info.text 
with open(r 'C:\ Users \ Administrator \ Desktop \%s.html '%wd、' w '、encoding = ' utf-8 ' )as f:
    f.writelines(info_text)
print' 爬取完毕'

 

ケース2:KFCストア情報

import リクエスト
 import json 

info = [] 


def kfc(num):
    url = " http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx " 
    data = {
         " op "" keyword " ' cname '' ' ' pid '' ' ' keyword '' 杭州' 'pageIndex' :num、
         ' pageSize '' 10 ' 

    } 
    header = {
         " User-Agent "" Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML、like Gecko)Chrome / 73.0.3683.86 Safari /537.36 "     } 

    req = requests.post(url = url、data = data、headers = header).json()
    info.append(req)
    print (req)


for i in range(9 ):
    i + = 1 
    kfc (i)

txt = open(r' C:\ Users \ Administrator \ Desktop \ KFC.json '' a '、encoding = ' utf-8 ' 
json.dump(info、fp = txt、Ensure_ascii = False)
 print' over '

 

ケース3:化粧品製造ライセンスの関連情報

インポート要求
 import json 

id = [] 
info = [] 
url = ' http://125.35.6.84:81/xk/itownet/portalAction.do ' 
header = {
     " User-Agent "" Mozilla / 5.0(Windows NT 10.0 ; Win64; x64)AppleWebKit / 537.36(KHTML、like Gecko)Chrome / 73.0.3683.86 Safari / 537.36 " 'Cookie': 'JSESSIONID = 02AF3EF8CBE74529A7F6231987EE1A6A; JSESSIONID = 64B83D7B541CEED78E13CF74B321D7A0' 
}
 のための I における範囲(1、6 ):
    I =str(i)
    data = {
         ' method '' getXkzsList ' ' on '' true ' ' page ' :i、
         ' pageSize '' 15 ' ' productName ''' ' conditionType '' 1 ' 'applyname ''' ' applysn ''' 
    } 

    req_id = requests.post(url = url、data = data、headers = header).json()
     for i in req_id [ ' list ' ]:
        id.append(i [ ' ID ' ])

for j in id:
    url = ' http://125.35.6.84:81/xk/itownet/portalAction.do ' 
    data = {
         ' method '' getXkzsById ' ' id ' :j 
    } 
    req_info = requests.post(url = url、data = data、headers = header).json()
    info.append(req_info)
txt = open(r ' C:\ Users \ Administrator \ Desktop \ juqing .json '' a '、encoding = ' utf-8 ' 
json.dump(info、txt、Ensure_ascii = False)
 print' over '

 

おすすめ

転載: www.cnblogs.com/ysging/p/12678581.html