python爬蟲使用cookie模擬登錄


#!/usr/local/bin/python3.7
import urllib.request
import urllib.parse
import ssl

# 全局取消證書驗證
ssl._create_default_https_context = ssl._create_unverified_context
# 發送請求的地址
url = 'https://www.xxxxxx.cn/community/questions/ask'
# 請求頭,使用cookie實現模擬登錄
headers = {
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.4 Safari/605.1.15',
    'cookie':'Hm_lpvt_8decfd249e4c816635a72c825e27da1a=1581998978; Hm_lvt_8decfd249e4c816635a72c825e27da1a=1581836896,1581906456,1581998809,1581998853; _ga=GA1.2.1949167017.1580877792; _gat_UA-127576832-1=1; _gid=GA1.2.386004501.1581837085; laravel_token=eyJpdiI6ImtWZ1wvcWZuXC9wUjJYVXNFcFpxSWx1QT09IiwidmFsdWUiOiJQTVRGMWEzbVdFRjhwT1hTRHpEWjUzWit2RHRpK2ZuRG5scGlKWG1HYm9pdzR3TTg4a2FVTXFOamJPcEtySTdQMzNkVVFNUXRoVlg3XC9zVHNpVjZ1TnNPcnBIeWxIR2tPOHVRT3BoK3hxZ0hlS3h3WGF1d1lXMVFiZHhyU3JKRzBkOUFBUGxwekxEOE1BdG9JS3RWcFE3UGUyZTQ4TlBlbTNRZUpadlZzdlBTSjh2RFgrN0k5YUY1V1Q2djJxSzhRUnNmenFaT2xkbWsyeEg2bzhWMWVQdkljNGxcLzYwcmVlYUlOK1E0ayt4KzJQa0M5dWxnUWVhRFJZbVVTekcyQ0pmUEJXMXVDVHBhN2ZnNnA3emg2WEhBPT0iLCJtYWMiOiI2MzIwZmU4ZWQwMzgyYTVkZWI0MTE5OGYyMjA4MDFmYjQ0MGY3ZGRkY2FjNzU1ZGJkZmJmN2RiZTk3YmFlNTAzIn0%3D; speedtest_session=eyJpdiI6ImFtNDlhaGMwRUJZWXYyZVZneHFPMlE9PSIsInZhbHVlIjoiUDR1Y2pLRThWZlh1K3lcL1N2bzFucnEyMmM2Qnp0Wnlqd0dcL1RnUHg2XC9CTnllb0FwUmtiYjlJUXR5QThBdU02YiIsIm1hYyI6ImQ4Mzk4YWY2NjQ3M2M0NmNmZDE3Njk2NDc1Yjc2ZTdhNjZhYTAzY2EyYTY1OWE2MWRjYmQ0YzFiNDQ1NDk0ZDYifQ%3D%3D; CNZZDATA1274897717=1649248696-1580888239-null%7C1581994444; remember_web_59ba36addc2b2f9401580f014c7f58ea4e30989d=eyJpdiI6InZGd2ZSanhEMktvbnJZbk56TVFKQ1E9PSIsInZhbHVlIjoiYkJPUUNvUjg0V3VoellqWXFTZGFtQ0lHRnF0MFN0N0Q5SHJWQW9MTTY3RHJCbW9Va2F6N3FSQ2VhQmYzTkNnMkRpMlwvVDl0QUtPSGNQUG93UXNhYTloQTZLM1VWcTFGVUtnVUM1bTNTbk11d09QV0NOYVNJVE1oSDE1Nk85UFpsM3hRNVFlM1o1Nm00T0tBWDhoakZPeFJVQUdmYnhsYjFWSG5ib3ZVMUJCWmVIMDdaMjBGVnhQclhpUEFIK2Q1MiIsIm1hYyI6IjI4Yjk5MGJhY2I3OTgxY2YyYTdlZGMwOTJjYmUyNDVmZmUzODAwYzRhYjkxZjc3OTRiMDMyZWI3YzYyODI2ODEifQ%3D%3D; UM_distinctid=17037f052f56b-001db749caf48c-481c3301-13c680-17037f052f63d2; __gads=ID=ef366901b83a67c9:T=1581486459:S=ALNI_MbX3_Usu7NRtWMC1zDYjxLi08Uvsw',
    
}
# 創建請求
request = urllib.request.Request(url,headers=headers)
# 發送請求
response = urllib.request.urlopen(request)

# 保存返回的信息
with open('/Users/mozili/PYTHONWORKSPACE/Reptile/login.html','wb')as fp:
    fp.write(response.read())

 

注意:

1、cookie通過發送請求后,在抓包工具中獲得,比如fiddler或者charles

2、這里的cookie並非發送登錄請求時的cookie,而是你要通過登錄后訪問的那個頁面請求的cookie

3、不一定所有的網站都能通過cookie的方式實現登錄,比如那些大型網站,擁有很多參數,不好實現登錄,該方法普通適用於一些小型的簡單網站

4、如果有的網站只加了cookie無法實現登錄,那么可以嘗試把請求頭的其他信息也加進來進行登錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM