爬蟲中使用cookie
為了能夠通過爬蟲獲取到登入後的頁面,或者是解決通過cookie的反扒,需要使用request來處理cookie相關的請求
爬蟲中使用cookie的利弊能夠訪問登入後的頁面
能夠實現部分反反爬
帶上cookie的壞處:
一套cookie往往對應的是乙個使用者的資訊,請求太頻繁有更大的可能性被對方識別為爬蟲
那麼上面的問題如何解決 ?使用多個賬號
requests處理cookie的方法使用requests處理cookie有三種方法:
cookie字串放在headers中
把cookie字典放傳給請求方法的cookies引數接收
使用requests提供的session模組
cookie新增在heades中
在headers中使用cookie"cookie":" pycharm-26c2d973=dbb9b300-2483-478f-9f5a-16ca4580177e; hm_lvt_98b9d8c2fd6608d564bf2ac2ae642948=1512607763; pycharm-26c2d974=f645329f-338e-486c-82c2-29e2a0205c74; _xsrf=2|d1a3d8ea|c5b07851cbce048bd5453846445de19d|1522379036"}
requests.get(url,headers=headers)
注意:
cookie有過期時間 ,所以直接複製瀏覽器中的cookie可能意味著下一程式繼續執行的時候需要替換**中的cookie,對應的我們也可以通過乙個程式專門來獲取cookie供其他程式使用;當然也有很多**的cookie過期時間很長,這種情況下,直接複製cookie來使用更加簡單
使用cookies引數接收字典形式的cookie
cookies的形式:字典
cookies =
使用方法:
requests.get(url,headers=headers,cookies=cookie_dict}
使用requests.session處理cookie前面使用手動的方式使用cookie,那麼有沒有更好的方法在requets中處理cookie呢?
requests 提供了乙個叫做session類,來實現客戶端和服務端的會話保持
會話保持有兩個內涵:
儲存cookie,下一次請求會帶上前一次的cookie
實現和服務端的長連線,加快請求速度
使用方法
session = requests.session()
response = session.get(url,headers)
動手練習一下:
動手嘗試使用session來登入人人網: (先不考慮這個url位址從何而來),請求體的格式:
思路分析
準備url位址和請求引數
構造session傳送post請求
使用session請求個人主頁,觀察是否請求成功
源**
#coding:utf-8
import requests
import re
url = ''
headers =
post_data =
# 建立session物件
session = requests.session()
session.headers = headers
# 傳送post請求,模擬登陸
session.post(url, data=post_data)
# 驗證登入
response = session.get('此處填寫人人網個人中心頁面的url')
print(response.url)
五個簡單的 Requests 庫爬蟲例項
本文是中國大學mooc上的python網路爬蟲與資訊提取 課程中的筆記,是五個基本的爬蟲操作,個人覺得其中的方法比較常用,因此記錄下來了。import requests url try r requests.get url r.raise for status print r.text 1000 e...
爬蟲入門 Requests庫
首先用管理員許可權開啟cmd命令列,然後直接輸入 pip install requests,即可安裝成功 需要聯網 方法 作用requests.request 構造乙個請求,它是支撐以下方法的基礎方法 requests.get 獲取html網頁的主要方法,請求獲取url位置的資源 requests....
資料爬蟲 requests庫
import requests response requests.get 模擬瀏覽器,欺騙瀏覽器,獲取和瀏覽器一致的內容。url headers requests.get url,headers headers url問號後面的就是請求引數,也叫查詢字串。kw response requests....