請求庫之requests庫
阿新 • • 發佈:2020-08-01
一 介紹
#介紹:使用requests可以模擬瀏覽器的請求,比起之前用到的urllib,requests模組的api更加便捷(本質就是封裝了urllib3) #注意:requests庫傳送請求將網頁內容下載下來以後,並不會執行js程式碼,這需要我們自己分析目標站點然後發起新的request請求 #安裝:pip3 install requests #各種請求方式:常用的就是requests.get()和requests.post() >>> import requests >>> r = requests.get('https://api.github.com/events') >>> r = requests.post('http://httpbin.org/post', data = {'key':'value'}) >>> r = requests.put('http://httpbin.org/put', data = {'key':'value'}) >>> r = requests.delete('http://httpbin.org/delete') >>> r = requests.head('http://httpbin.org/get') >>> r = requests.options('http://httpbin.org/get') #建議在正式學習requests前,先熟悉下HTTP協議 http://www.cnblogs.com/linhaifeng/p/6266327.html
二 基於GET請求
1、基本請求
import requests response=requests.get('http://dig.chouti.com/') print(response.text)
2、帶引數的GET請求->params
請求地址中攜帶資料(兩種方式,推薦第二種)
方式一:
import requests header = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36', } res=requests.get('https://www.baidu.com/s?wd=美女',headers=header) print(res.text)
方法二:通過params引數
import requests header = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36', } res=requests.get('https://www.baidu.com/s',headers=header,params={'wd':'美女'}) print(res.url) # https://www.baidu.com/s?wd=%E7%BE%8E%E5%A5%B3 print(res.text)
如果就想把搜尋的引數放在url中,最好用urlencode進行一下編碼再進行拼接,如下:
#如果查詢關鍵詞是中文或者有其他特殊符號,則不得不進行url編碼 import requests from urllib.parse import urlencode,unquote # url的編碼和解碼 wd='egon老師' # egon%E8%80%81%E5%B8%88 encode_res=urlencode({'k':wd},encoding='utf-8') keyword=encode_res.split('=')[1] print(keyword) # 然後拼接成url url='https://www.baidu.com/s?wd=%s&pn=1' %keyword response=requests.get(url, headers={ 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36', }) print(response.url) print(response.text)