1. 程式人生 > >簡單爬蟲之requests的使用

簡單爬蟲之requests的使用

Requests庫的用法

  1. 安裝
  • pip install requests
  1. 基本請求
response=requests.get(引數)
response=requests.post(引數)
response=requests.put(引數)
response=requests.delete(引數)
response=requests.head(引數)
response=requests.options(引數)

2.1 get請求

  • 引數是字典,也可以傳遞json型別的引數
import requests
url=
"https://www.baidu.com/s" headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36", } params={ "wd":"西安郵電大學" } response=requests.get(url,headers=headers,params=params) print(response.text)

2.2 post請求

  • 引數是字典,也可以傳遞json型別的引數
import  requests
headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36",
    }
datas = {
        "user": "17703181473",
        "password": "123456"
    }
url = "https://www.sxt.cn/login/login"
response=requests.
post(url,headers=headers,data=datas) print(response.text)

2.3 代理訪問

  • 採集時為避免被封IP,經常會使用代理,requests也有相應的proxies屬性
#部分程式碼如下
url="http://httpbin.org/get"
proxies={
    "http":"118.190.95.43:9001"
}
response=requests.get(url,headers=headers,proxies=proxies)
#如果代理需要賬戶和密碼,就是下面的程式碼
proxies={  "http":"398707160:[email protected]:16818"#user:[email protected]:port
}

2.4 session自動儲存cookie

  • session的意思是保持一個會話,比如登入後繼續操作(記錄身份資訊),而requests是單詞請求的請求,身份資訊不會被記錄
session=requests.Session()#建立一個session物件
datas = {
        "user": "17703181473",
        "password": "123456"
}
login_url="https://www.sxt.cn/login/login"
response=session.post(login_url,headers=headers,data=datas)

info_url="https://www.sxt.cn/index/user.html"
respon=session.get(info_url,headers=headers)

2.5 ssl驗證

url="https://www.12306.cn/mormhweb/"
requests.packages.urllib3.disable_warnings()#關閉安全請求警告
response=requests.get(url,verify=False,headers=headers)
response.encoding="utf-8"
  1. 獲取響應資訊
  • response.json() 獲取響應內容(以json字串)
  • response.text() 獲取響應內容(以字串)
  • response.content獲取響應內容(以位元組的方式)
  • response.headers 獲取響應頭內容
  • response.url 獲取訪問地址
  • response.encoding 獲取網頁編碼
  • response.request.headers 請求頭內容