如何使用python爬蟲(chóng)爬取要登陸的網(wǎng)站
你好
由于你是游客
無(wú)法查看本文
請(qǐng)你登錄再進(jìn)
謝謝合作。。。。。

當(dāng)你在爬某些網(wǎng)站的時(shí)候
需要你登錄才可以獲取數(shù)據(jù)
咋整?
莫慌
把這幾招傳授給你
讓你以后從容應(yīng)對(duì)

登錄的常見(jiàn)方法無(wú)非是這兩種
1、讓你輸入帳號(hào)和密碼登錄

2、讓你輸入帳號(hào)密碼+驗(yàn)證碼登錄

今天
先跟你說(shuō)說(shuō)第一種
需要驗(yàn)證碼的咱們下一篇再講
第一招

Cookie大法
你平常在上某個(gè)不為人知的網(wǎng)站的時(shí)候
是不是發(fā)現(xiàn)你只要登錄一次
就可以一直看到你想要的內(nèi)容
過(guò)了一陣子才需要再次登錄
這就是因?yàn)?Cookie 在做怪
簡(jiǎn)單來(lái)說(shuō)
就是每一個(gè)使用這個(gè)網(wǎng)站的人
服務(wù)器都會(huì)給他一個(gè) Cookie
那么下次你再請(qǐng)求數(shù)據(jù)的時(shí)候
你順帶把這個(gè) Cookie 傳過(guò)去
服務(wù)器一看
誒,小伙子是老客戶啊

有登錄過(guò)
直接返回?cái)?shù)據(jù)給他吧
在服務(wù)中還可以設(shè)置 Cookie 的有效時(shí)間
也就是說(shuō)
當(dāng)你下次攜帶一個(gè)過(guò)期了的 Cookie 給服務(wù)器的時(shí)候
服務(wù)器雖然知道你是老客戶
但是還是需要你重新再登錄一次
然后再給你一個(gè)有效的 Cookie
Cookie 的時(shí)長(zhǎng)周期是服務(wù)器那邊定的
ok
了解了這一點(diǎn)之后
我們就來(lái)玩一下吧
我們以「逼乎」為例
https://biihu.cc/account/login/
輸入地址之后
按一下 F12
點(diǎn)擊 network 標(biāo)簽
然后登錄你的帳號(hào)
然后點(diǎn)擊其中一個(gè)
你就可以看到在 Request Headers 有你的 Cookie

有了 Cookie 之后
我們?cè)诖a中直接獲取我的個(gè)人信息
import requests
headers = {
# 假裝自己是瀏覽器
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/73.0.3683.75 Chrome/73.0.3683.75 Safari/537.36',
# 把你剛剛拿到的Cookie塞進(jìn)來(lái)
'Cookie': 'eda38d470a662ef3606390ac3b84b86f9; Hm_lvt_f1d3b035c559e31c390733e79e080736=1553503899; biihu__user_login=omvZVatKKSlcXbJGmXXew9BmqediJ4lzNoYGzLQjTR%2Fjw1wOz3o4lIacanmcNncX1PsRne5tXpE9r1sqrkdhAYQrugGVfaBICYp8BAQ7yBKnMpAwicq7pZgQ2pg38ZzFyEZVUvOvFHYj3cChZFEWqQ%3D%3D; Hm_lpvt_f1d3b035c559e31c390733e79e080736=1553505597',
}
session = requests.Session()
response = session.get('https://biihu.cc/people/wistbean%E7%9C%9F%E7%89%B9%E4%B9%88%E5%B8%85', headers=headers)
print(response.text)
運(yùn)行后可以發(fā)現(xiàn)不用登錄就可以直接拿到自己的個(gè)人信息了
<!DOCTYPE html> <html> <head> <meta content="text/html;charset=utf-8" http-equiv="Content-Type" /> <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,Chrome=1" /> <meta name="renderer" content="webkit" /> <title>小帥b真特么帥 的個(gè)人主頁(yè) - 逼乎</title> <meta name="keywords" content="逼乎,問(wèn)答,裝逼,逼乎網(wǎng)站" /> <meta name="description" content="逼乎 ,與世界分享你的裝逼技巧與見(jiàn)解" /> <base rel="external nofollow" /><!--[if IE]></base><![endif]--> <link rel="stylesheet" type="text/css" rel="external nofollow" /> <link rel="stylesheet" type="text/css" rel="external nofollow" /> <link rel="external nofollow" rel="stylesheet" type="text/css" /> <link rel="external nofollow" rel="stylesheet" type="text/css" /> <link rel="external nofollow" rel="stylesheet" type="text/css" /> <link rel="external nofollow" rel="stylesheet" type="text/css" /> <link rel="external nofollow" rel="stylesheet" type="text/css" /> <script type="text/javascript"> var _02AEC94D5CA08B39FC0E1F7CC220F9B4="a5359326797de302bfc9aa6302c001b8"; var G_POST_HASH=_02AEC94D5CA08B39FC0E1F7CC220F9B4; var G_INDEX_SCRIPT = ""; var G_SITE_NAME = "逼乎"; var G_BASE_URL = "https://biihu.cc"; var G_STATIC_URL = "https://biihu.cc/static"; var G_UPLOAD_URL = "/uploads"; var G_USER_ID = "188"; var G_USER_NAME = "666"; var G_UPLOAD_ENABLE = "Y"; var G_UNREAD_NOTIFICATION = 0; var G_NOTIFICATION_INTERVAL = 100000; var G_CAN_CREATE_TOPIC = "1"; var G_ADVANCED_EDITOR_ENABLE = "Y"; var FILE_TYPES = "jpg,jpeg,png,gif,zip,doc,docx,rar,pdf,psd"; </script> <script src="https://biihu.cc/static/js/jquery.2.js?v=20180831" type="text/javascript"></script>
第二招

表單請(qǐng)求大法
很簡(jiǎn)單
就是通過(guò)抓包
獲取請(qǐng)求登錄的時(shí)候需要用到的用戶名密碼參數(shù)
然后以表單的形式請(qǐng)求服務(wù)器
如果你細(xì)心一點(diǎn)的話應(yīng)該會(huì)知道之前說(shuō)過(guò)拉
具體在這
去看下
我就不多說(shuō)了
第三招

Selenium 自動(dòng)登錄法
獲取到兩個(gè)輸入框的元素
再獲取到登錄按鈕
往輸入框?qū)懩愕膸ぬ?hào)密碼
然后自動(dòng)點(diǎn)擊一下登錄
username = WAIT.until(EC.presence_of_element_located((By.CSS_SELECTOR, "帳號(hào)的selector")))
password = WAIT.until(EC.presence_of_element_located((By.CSS_SELECTOR, "密碼的selector")))
submit = WAIT.until(EC.element_to_be_clickable((By.XPATH, '按鈕的xpath')))
username.send_keys('你的帳號(hào)')
password.send_keys('你的密碼')
submit.click()
登錄完之后拿到 Cookie
cookies = webdriver.get_cookies()
有了 Cookie 你就可以拿到你想要的數(shù)據(jù)了,希望對(duì)你有幫助
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python爬蟲(chóng)之爬取最新更新的小說(shuō)網(wǎng)站
- Python爬蟲(chóng)設(shè)置Cookie解決網(wǎng)站攔截并爬取螞蟻短租的問(wèn)題
- python爬蟲(chóng)爬取某網(wǎng)站視頻的示例代碼
- python爬蟲(chóng)實(shí)現(xiàn)爬取同一個(gè)網(wǎng)站的多頁(yè)數(shù)據(jù)的實(shí)例講解
- Python爬蟲(chóng)自動(dòng)化獲取華圖和粉筆網(wǎng)站的錯(cuò)題(推薦)
- python爬蟲(chóng)使用正則爬取網(wǎng)站的實(shí)現(xiàn)
- 詳解python 破解網(wǎng)站反爬蟲(chóng)的兩種簡(jiǎn)單方法
- python爬蟲(chóng)爬取筆趣網(wǎng)小說(shuō)網(wǎng)站過(guò)程圖解
- python爬蟲(chóng)爬取幽默笑話網(wǎng)站
- python 爬取吉首大學(xué)網(wǎng)站成績(jī)單
相關(guān)文章
pandas讀取excel統(tǒng)計(jì)空值數(shù)量錯(cuò)誤的解決方法
pd.read_excel()讀取excel數(shù)據(jù)后,用pd.isnull().sum()統(tǒng)計(jì)空值數(shù)量不對(duì),本文主要介紹了pandas讀取excel統(tǒng)計(jì)空值數(shù)量錯(cuò)誤的解決方法,感興趣的可以了解一下2024-04-04
詳解Python中四種關(guān)系圖數(shù)據(jù)可視化的效果對(duì)比
python關(guān)系圖的可視化主要就是用來(lái)分析一堆數(shù)據(jù)中,每一條數(shù)據(jù)的節(jié)點(diǎn)之間的連接關(guān)系從而更好的分析出人物或其他場(chǎng)景中存在的關(guān)聯(lián)關(guān)系。本文將制作四個(gè)不同的關(guān)系圖的可視化效果,感興趣的可以了解一下2022-11-11
Python中優(yōu)雅使用assert斷言的方法實(shí)例
我們?cè)陂_(kāi)發(fā)一個(gè)程序時(shí)候,與其讓它運(yùn)行時(shí)崩潰,不如在它出現(xiàn)錯(cuò)誤條件時(shí)就崩潰(返回錯(cuò)誤),這時(shí)候斷言assert就顯得非常有用,這篇文章主要給大家介紹了關(guān)于Python中優(yōu)雅使用assert斷言的相關(guān)資料,需要的朋友可以參考下2021-09-09
Python中關(guān)于面向?qū)ο蟾拍畹脑敿?xì)講解
要了解面向?qū)ο笪覀兛隙ㄐ枰戎缹?duì)象到底是什么玩意兒。關(guān)于對(duì)象的理解很簡(jiǎn)單,在我們的身邊,每一種事物的存在都是一種對(duì)象??偨Y(jié)為一句話也就是:對(duì)象就是事物存在的實(shí)體2021-10-10
python中DataFrame常用的描述性統(tǒng)計(jì)分析方法詳解
這篇文章主要介紹了python中DataFrame常用的描述性統(tǒng)計(jì)分析方法詳解,描述性統(tǒng)計(jì)分析是通過(guò)圖表或數(shù)學(xué)方法,對(duì)數(shù)據(jù)資料進(jìn)行整理、分析,并對(duì)數(shù)據(jù)的分布狀態(tài)、數(shù)字特征和隨機(jī)變量之間的關(guān)系進(jìn)行估計(jì)和描述的方法,需要的朋友可以參考下2023-07-07
Python中的Logging模塊在項(xiàng)目應(yīng)用小結(jié)
Python標(biāo)準(zhǔn)庫(kù)中的logging模塊為我們提供了強(qiáng)大而靈活的日志記錄功能,本文將介紹如何使用logging模塊,并探討其在Python開(kāi)發(fā)中的實(shí)際應(yīng)用,感興趣的朋友一起看看吧2024-04-04
pytorch模型部署 pth轉(zhuǎn)onnx的方法
這篇文章主要介紹了pytorch模型部署 pth轉(zhuǎn)onnx的相關(guān)知識(shí),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05

