リクエストモジュール
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