Pythonクローラー学習(2)-requestsモジュール

リクエストモジュール

1.インストール:

1.コマンドラインで次のように入力します。

pip install requests

2.ホイールの取り付け:

対応するホイールファイルをダウンロードします:リンク:https//pypi.python.org/pypi/requests/version#downloads

次に、コマンドラインでwheel fileディレクトリに入り、pipを使用してインストールします

pip install 文件名

2.基本的な使用法

(1)GETリクエストメソッド:


import requests

r = requests.get(url='',params='' )
print(r.text)

BaiduのURLにリクエストを送信しましょう:


import requests

r = requests.get(url='https://www.baidu.com')

print(type(r))  # 查看响应类型
print(r.status_code)  # 打印状态码
print(r.cookies)  # 返回cookies

結果の印刷:


<class 'requests.models.Response'>
200
<RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]>

追加情報のGETリクエスト:

paramsパラメータを設定し、辞書に渡します

import requests

data = {
    
    
        'name' : 'tom',
        'age' : '22'
    }

r = requests.get(url='https://httpbin.org/get' , params=data)

print(r.text)

結果は次のとおりです。

  "args": {
    "age": "22", 
    "name": "tom"
  }, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Host": "httpbin.org", 
    "User-Agent": "python-requests/2.25.0", 
    "X-Amzn-Trace-Id": "Root=1-5ff01765-639962aa3f8c52747fa309f5"
  }, 
  "origin": "111.18.93.192", 
  "url": "https://httpbin.org/get?name=tom&age=22 "
}

この時点で、URLはスプライスされますhttps://httpbin.org/get?name=tom&age=22

getを使用して、GitHubサイトアイコンを配布およびクロールします。

import requests

r = requests.get(url='https://github.com/favicon.ico' )
with open('favicon.ico','wb') as f: #结果保存为favicon.ico
    f.write(r.content)

(2)POSTリクエスト:

POSTリクエストでは、データを使用してパラメータを渡します。

import requests

data = {
    
    'name':'tom','age':'22'}
r = requests.post('https://httpbin.org/post', data = data)
print(r.text)

3.高度な使用法

(1)ファイルのアップロード:
アップロードされたファイルは、スクリプトと同じディレクトリにある必要があります。


import requests

files = {
    
    'file' : open('favicon.ico','rb')}
r = requests.post('https://httpbin.org/post',files=files)
print(r.text)

(2)クッキー

リクエストを使用してCookieを取得します。


import requests

r = requests.get(url='https://www.baidu.com' )
print(r.cookies)
for key,value in r.cookies.items():
    print(key + '=' + value)

最初にcookies属性を呼び出してCookieを取得し、次にitems()メソッドを使用してタプルのリストに変換し、各Cookieをトラバースして出力します。

(3)セッションのメンテナンス:

セッションオブジェクト:

リクエストでは、getまたはpostを直接使用してWebページをリクエストすると、実際には異なるセッションが生成されます。これは、2つのブラウザを使用して異なるページを開くのと同じです。

セッションは、Cookieを気にすることなくセッションを簡単に維持できます。

例は次のとおりです。


import requests

requests.get(url='https://httpbin.org/cookies/set/number/123465789' )
r = requests.get(url='https://httpbin.org/cookies' )
print(r.text)

テストWebサイトにリクエストを送信し、値が123456789のnumberという名前のCookieを設定してから、このURLをリクエストしてCookieの取得を試みます。

実行結果はCookieをキャプチャしませんでした:

{
	 "cookies": {}
}

セッションで試してみてください:


import requests

s = requests.Session()
s.get(url='https://httpbin.org/cookies/set/number/123465789' )
r = s.get(url='https://httpbin.org/cookies' )
print(r.text)

操作の結果はCookieの取得に成功しました

	{
    "cookies": {
    "number": "123465789"
           }
	}

(4)SSL証明書の検証:

SSLErrorを回避するためにhttpsサイトをリクエストしてください。この問題は、requests.get()メソッドのverifyパラメーターをFalesに設定することで解決できます。

requests.get(url='',verify=Fales)

(5)プロキシ設定:プロキシパラメータ

import requests

proxies = {
    
    
	'http' : '代理网址1'
	'https' : '代理网址2'
}
requests.get('url' ,proxies=proxies)

(6)ID検証:認証パラメーター

ウェブサイトにアクセスすると、認証が行われる場合があります。
このとき、リクエストに付属の認証機能を使用できます。

import requests
from requests.auth import HTTPBasicAuth

r = requests.get('url' , auth =  HTTPBasicAuth('username' , 'password'))

参照および推奨書籍:https//cuiqingcai.com/5052.html

おすすめ

転載: blog.csdn.net/qq_45742511/article/details/112095845