爬蟲之--登錄實現
阿新 • • 發佈:2018-08-19
sid code hot req gen ESS 按鈕 from Nid
在登陸後,如果不退出當前用戶,cookie是不會變的(哪怕退出瀏覽器),如果退出當前用戶,那麽下次登錄後,cookie會改變
要想爬取登錄後的界面內容,主要有兩種方式
一.帶上登陸後的cookie(這種方式局限性:獲取本臺機器上的cookie,但是在其他電腦上不能使用,還是登錄不上去,就要用到方法二)
import requests
####此url是登錄後的url url="http://www.renren.com/967455374"
####headers中的cookie是登陸後network中的cookie headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36","Cookie": "anonymid=jkthlsn4-8iirrn; _r01_=1; ln_uact=17320180454; ln_hurl=http://head.xiaonei.com/photos/0/0/men_main.gif; depovince=GW; jebe_key=3da058d0-e6d1-4136-9b6e-dc881262d74f%7C511bbbcd773ff3ca8b4ba9e781ac8187%7C1534238020416%7C1%7C1534598501955; _de=B9F462630629FD38DAF2F9061F8E47D1; JSESSIONID=abcVZe1RxLJwR4cXASrvw; ick_login=75c0fc68-ab42-40f9-bd98-2c4815a5738f; jebecookies=77469486-920a-43ee-8612-2a20af016e4d|||||; p=1e99b88dc297135877a5b163f8b8f5114; first_login_flag=1; t=09607b7721b3f5b8f955678c8c5eb6574; societyguester=09607b7721b3f5b8f955678c8c5eb6574; id=967455374; xnsid=ae4d6050; ver=7.0; loginfrom=null; wp_fold=0"} respone=requests.get(url=url,headers=headers) print(respone.text)
二.使用session()
import requests session=requests.session() #實例化session post_url="http://www.renren.com/ajaxLogin/login?1=1&uniqueTimestamp=2018702056889" #form表單中action的url headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"} data={"email":"17320180454","password":"kk950523"} respone=session.post(url=post_url,headers=headers,data=data) #將cookie保存在session print(respone.text) url="http://www.renren.com/967455374" #登錄後的url respone=session.get(url=url,headers=headers) #session帶著cookie請求 print(respone.text)
#如果form表單中沒有action,就勾選當前登錄界面的network中的Preserve log(記錄日誌),點擊登錄按鈕,會找到post請求方式的url,然後找到裏面form data的數據,這時候可能password字段是js加密的,所以不能用上面的方法,就要用到seleium模擬點擊登錄按鈕。
爬蟲之--登錄實現