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

溫馨提示×

溫馨提示×

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

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

使用requests庫怎么實現一個python爬蟲

發布時間:2020-12-18 14:28:11 來源:億速云 閱讀:167 作者:Leah 欄目:開發技術

使用requests庫怎么實現一個python爬蟲?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

requests庫

利用pip安裝:
pip install requests

基本請求

req = requests.get("https://www.baidu.com/")
req = requests.post("https://www.baidu.com/")
req = requests.put("https://www.baidu.com/")
req = requests.delete("https://www.baidu.com/")
req = requests.head("https://www.baidu.com/")
req = requests.options(https://www.baidu.com/)

1.get請求

參數是字典,我們可以傳遞json類型的參數:

import requests
from fake_useragent import UserAgent#請求頭部庫
headers = {"User-Agent":UserAgent().random}#獲取一個隨機的請求頭
url = "https://www.baidu.com/s"#網址
params={
  "wd":"豆瓣"  #網址的后綴
}

requests.get(url,headers=headers,params=params)

使用requests庫怎么實現一個python爬蟲

返回了狀態碼,所以我們要想獲取內容,需要將其轉成text:

#get請求

headers = {"User-Agent":UserAgent().random}
url = "https://www.baidu.com/s"
params={
  "wd":"豆瓣"
}

response = requests.get(url,headers=headers,params=params)
response.text

2.post 請求

參數也是字典,也可以傳遞json類型的參數:

import requests 
from fake_useragent import UserAgent

headers = {"User-Agent":UserAgent().random}

url = "https://www.baidu.cn/index/login/login" #登錄賬號密碼的網址
params = {
  "user":"1351351335",#賬號
  "password":"123456"#密碼
}

response = requests.post(url,headers=headers,data=params)
response.text

使用requests庫怎么實現一個python爬蟲

因為這里需要一個登錄的網頁,我這里就隨便用了一個,沒有登錄,所以顯示的結果是這樣的,如果想要測試登錄的效果,請找一個登錄的頁面去嘗試一下。

3.IP代理

采集時為避免被封IP,經常會使用代理,requests也有相應 的proxies屬性。

#IP代理

import requests 
from fake_useragent import UserAgent

headers = {"User-Agent":UserAgent().random}
url = "http://httpbin.org/get" #返回當前IP的網址

proxies = {
  "http":"http://yonghuming:123456@192.168.1.1:8088"#http://用戶名:密碼@IP:端口號
  #"http":"https://182.145.31.211:4224"# 或者IP:端口號
}

requests.get(url,headers=headers,proxies=proxies)

代理IP可以去:快代理去找,也可以去購買。
http://httpbin.org/get。這個網址是查看你現在的信息:

使用requests庫怎么實現一個python爬蟲

4.設置訪問超時時間

可以通過timeout屬性設置超時時間,一旦超過這個時間還沒獲取到響應內容,就會提示錯誤。

#設置訪問時間
requests.get("http://baidu.com/",timeout=0.1)

使用requests庫怎么實現一個python爬蟲

5.證書問題(SSLError:HTTP)

ssl驗證。

import requests 
from fake_useragent import UserAgent #請求頭部庫

url = "https://www.12306.cn/index/" #需要證書的網頁地址
headers = {"User-Agent":UserAgent().random}#獲取一個隨機請求頭

requests.packages.urllib3.disable_warnings()#禁用安全警告
response = requests.get(url,verify=False,headers=headers)
response.encoding = "utf-8" #用來顯示中文,進行轉碼
response.text

使用requests庫怎么實現一個python爬蟲

6.session自動保存cookies

import requests
from fake_useragent import UserAgent

headers = {"User-Agent":UserAgent().chrome}
login_url = "https://www.baidu.cn/index/login/login" #需要登錄的網頁地址
params = {
  "user":"yonghuming",#用戶名
  "password":"123456"#密碼
}
session = requests.Session() #用來保存cookie

#直接用session 歹意requests 
response = session.post(login_url,headers=headers,data=params)

info_url = "https://www.baidu.cn/index/user.html" #登錄完賬號密碼以后的網頁地址
resp = session.get(info_url,headers=headers)
resp.text

因為我這里沒有使用需要賬號密碼的網頁,所以顯示這樣:

使用requests庫怎么實現一個python爬蟲

我獲取了一個智慧樹的網頁

#cookie 

import requests
from fake_useragent import UserAgent

headers = {"User-Agent":UserAgent().chrome}
login_url = "https://passport.zhihuishu.com/login?service=https://onlineservice.zhihuishu.com/login/gologin" #需要登錄的網頁地址
params = {
  "user":"12121212",#用戶名
  "password":"123456"#密碼
}
session = requests.Session() #用來保存cookie

#直接用session 歹意requests 
response = session.post(login_url,headers=headers,data=params)

info_url = "https://onlne5.zhhuishu.com/onlinWeb.html#/stdetInex" #登錄完賬號密碼以后的網頁地址
resp = session.get(info_url,headers=headers)
resp.encoding = "utf-8"
resp.text

使用requests庫怎么實現一個python爬蟲

7.獲取響應信息

代碼含義
resp.json()獲取響應內容 (以json字符串)
resp.text獲取相應內容(以字符串)
resp.content獲取響應內容(以字節的方式)
resp.headers獲取響應頭內容
resp.url獲取訪問地址
resp.encoding獲取網頁編碼
resp.request.headers請求頭內容
resp.cookie獲取cookie

看完上述內容,你們掌握使用requests庫怎么實現一個python爬蟲的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

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

AI

高尔夫| 山阴县| 临汾市| 双城市| 白朗县| 平顺县| 当涂县| 宜丰县| 大邑县| 靖西县| 龙门县| 象州县| 长春市| 图们市| 咸丰县| 盱眙县| 乳源| 丽江市| 屯昌县| 喀什市| 尼勒克县| 娄底市| 宁夏| 邹平县| 天祝| 大理市| 建湖县| 任丘市| 阳信县| 赫章县| 乌审旗| 邵东县| 秦安县| 固阳县| 垣曲县| 慈溪市| 绥滨县| 龙江县| 潞城市| 阳泉市| 新河县|