中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python爬蟲request模塊如何使用

發布時間:2020-09-24 09:34:18 來源:億速云 閱讀:168 作者:Leah 欄目:編程語言

本篇文章為大家展示了Python爬蟲request模塊如何使用,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

爬蟲——requests模塊

Requests繼承了urllib.request的所有特性,Requests支持HTTP連接保持和連接池,支持使用cookie保持會話,支持文件上傳,支持自動確定響應內容的編碼,支持國際化的URL和POST數據自動編碼。

相較于urllib.request而言,其使用更加簡潔方便。

基本GET請求(headers參數和parmas參數)

1.最基本的GET請求可以直接用get方法

#!/usr/bin/python3
# -*- coding:utf-8 -*-
import requests
 
response = requests.get("http://www.baidu.com/")
# 也可以這么寫
# response = requests.request("get", "http://www.baidu.com/")

2.添加headers和查詢參數

如果想添加headers,可以傳入headers參數來增加請求頭中的headers信息。如果要將參數放在url中傳遞,可以利用params參數。

#!/usr/bin/python3
# -*- coding:utf-8 -*-
 
import requests
 
url = "http://www.baidu.com/s?"
 
kw = {"wd":"爬蟲"}
 
# User-Agent頭
header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36'}
 
# params接收一個字典或者字符串的查詢參數,字典類型自動轉換為url編碼,不需要urlencode()
response = requests.get(url = url, params = kw, headers = header)
 
# 打印響應內容,response.text返回的是Unicode格式的數據
print(response.text)
# 打印響應內容,response.content返回的是字節流數據
# print(response.content)
 
# 查看完整的url地址
print(response.url)
 
# 查看響應頭部字符編碼
print(response.encoding)
 
# 查看響應碼
print(response.status_code)

使用response.text時,requests會基于HTTP響應的文本編碼自動解碼響應內容,大多數Unicode字符集都能被無縫地解碼。

使用response.content時,返回的是服務器響應數據的原始二進制字節流,可以用來保存圖片等二進制文件。

基本POST討還(data參數)

1.最基本的GET請求可以直接用post方法

#!/usr/bin/python3
# -*- coding:utf-8 -*-
 
import requests
 
response = requests.post("http://www.baidu.com/")
# 也可以這么寫
# response = requests.request("post", "http://www.baidu.com/")

2.傳入data數據

對于POST請求來說,我們一般需要為它增加一些參數。那么最基本的傳參方法可以利用data這個參數。

#!/usr/bin/python3
# -*- coding:utf-8 -*-
 
import requests
 
url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null"
 
header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36'}
 
word = input("請輸入需要翻譯的詞條:")
 
from_data = {
    "i":word,
    "from":"AUTO",
    "to":"AUTO",
    "smartresult":"dict",
    "doctype":"json",
    "version":"2.1",
    "keyfrom":"fanyi.wed"
}
 
response = requests.post(url = url, data = from_data, headers = header)
 
# print(response.text)
print(response.json())

代理(proxies參數)

如果需要使用代理,你可以通過為任意請求方法提供proxies參數來配置單個請求:

#!/usr/bin/python3
# -*- coding:utf-8 -*-
__author__ = 'mayi'
 
import requests
 
# 根據協議類型,選擇不同的代理
proxies = {
    "http": "http://12.34.56.78:90",
    "https": "http://21.43.65.87:90"
}
 
response = requests.get("http://www.baidu.com/", proxies = proxies)
 
print(response.text)

Cookies和Sission

1.Cookies

如果一個響應中包含了cookie,那么我們可以利用cookies參數拿到:

#!/usr/bin/python3
# -*- coding:utf-8 -*-
__author__ = 'mayi'
 
import requests
 
response = requests.get("http://www.baidu.com/")
 
cookiejar = response.cookies
 
cookiedict = requests.utils.dict_from_cookiejar(cookiejar)
 
print(cookiejar)
 
print(cookiedict)

2.Sission

在requests里,session對象是一個非常常用的對象,這個對象代表一次用戶會話:從客戶端連接服務器開始,到客戶端瀏覽器與服務器斷開。

會話能讓我們在跨請求時候保持某些參數,比如在同一個Session實例發出的所有請求之間保持cookie。

實現人人網登錄

#!/usr/bin/python3
# -*- coding:utf-8 -*-
__author__ = 'mayi'
 
import requests
 
# 創建session對象,用于保存Cookie值
session = requests.session()
 
# User-Agent頭
header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36'}
 
# 需要登錄的賬戶和密碼
email = input("請輸入您的賬戶:")
password = input("請輸入您的密碼:")
data = {"email": email, "password": password}
 
# 發送附帶賬戶密碼的請求,并獲取登錄后的Cookie值,保存在session中
session.post("http://www.renren.com/PLogin.do", data = data)
 
# session中包含了登錄后的Cookie值,可以直接訪問那些需登錄后才能訪問的頁面
response = session.get("http://www.renren.com/413928886/profile")
 
# 打印響應內容
print(response.text)

上述內容就是Python爬蟲request模塊如何使用,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

尉氏县| 曲水县| 呼伦贝尔市| 巴塘县| 华亭县| 隆子县| 平阴县| 山东省| 阿克苏市| 衡东县| 宜丰县| 新营市| 县级市| 榕江县| 玉龙| 松滋市| 双柏县| 灵寿县| 姜堰市| 隆回县| 澄江县| 沾益县| 太白县| 吉木乃县| 塘沽区| 锦州市| 阳曲县| 东海县| 海伦市| 阳泉市| 米林县| 武宁县| 塔河县| 米脂县| 仙桃市| 大兴区| 博乐市| 霍邱县| 两当县| 蓬莱市| 邢台县|