遇到需要的登錄的網站怎麼辦?學好python,用這3招輕鬆搞定!


你好


由於你是遊客
無法查看本文
請你登錄再進
謝謝合作

遇到需要的登錄的網站怎麼辦?學好python,用這3招輕鬆搞定!

當你在爬某些網站的時候
需要你登錄才可以獲取數據
咋整?
莫慌
小編把這幾招傳授給你
讓你以後從容應對

遇到需要的登錄的網站怎麼辦?學好python,用這3招輕鬆搞定!

登錄的常見方法無非是這兩種
1、讓你輸入帳號和密碼登錄

遇到需要的登錄的網站怎麼辦?學好python,用這3招輕鬆搞定!

2、讓你輸入帳號密碼+驗證碼登錄

遇到需要的登錄的網站怎麼辦?學好python,用這3招輕鬆搞定!

今天
先跟你說說第一種
需要驗證碼的咱們下一篇再講
第一招

遇到需要的登錄的網站怎麼辦?學好python,用這3招輕鬆搞定!

Cookie大法
你平常在上某個不為人知的網站的時候
是不是發現你只要登錄一次
就可以一直看到你想要的內容


過了一陣子才需要再次登錄
這就是因為 Cookie 在做怪
簡單來說
就是每一個使用這個網站的人
服務器都會給他一個 Cookie
那麼下次你再請求數據的時候
你順帶把這個 Cookie 傳過去
服務器一看
誒,小夥子是老客戶啊

遇到需要的登錄的網站怎麼辦?學好python,用這3招輕鬆搞定!

有登錄過
直接返回數據給他吧
在服務中還可以設置 Cookie 的有效時間
也就是說
當你下次攜帶一個過期了的 Cookie 給服務器的時候
服務器雖然知道你是老客戶
但是還是需要你重新再登錄一次
然後再給你一個有效的 Cookie
Cookie 的時長週期是服務器那邊定的
ok
瞭解了這一點之後
我們就來玩一下吧
我們以「逼乎」為例
https://biihu.cc/account/login/
輸入地址之後
按一下 F12
點擊 network 標籤
然後登錄你的帳號
然後點擊其中一個
你就可以看到在 Request Headers 有你的 Cookie

遇到需要的登錄的網站怎麼辦?學好python,用這3招輕鬆搞定!

有了 Cookie 之後
我們在代碼中直接獲取我的個人信息

<code>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塞進來
'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)/<code>


運行後可以發現不用登錄就可以直接拿到自己的個人信息了

<code>









/<code>


第二招

遇到需要的登錄的網站怎麼辦?學好python,用這3招輕鬆搞定!

表單請求大法
很簡單
就是通過抓包
獲取請求登錄的時候需要用到的用戶名密碼參數
然後以表單的形式請求服務器
如果你細心一點的話應該會知道之前說過拉
具體在這
去看下
我就不多說了
第三招

遇到需要的登錄的網站怎麼辦?學好python,用這3招輕鬆搞定!

Selenium 自動登錄法
獲取到兩個輸入框的元素
再獲取到登錄按鈕
往輸入框寫你的帳號密碼
然後自動點擊一下登錄

<code>username = WAIT.until(EC.presence_of_element_located((By.CSS_SELECTOR, "帳號的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('你的帳號')
password.send_keys('你的密碼')
submit.click()/<code>


登錄完之後拿到 Cookie

<code>cookies = webdriver.get_cookies()/<code>


有了 Cookie 你就可以拿到你想要的數據了
ok
以上這三招
希望對你有幫助


如果你對Python編程感興趣,那麼記得私信小編“學習”領取全套Python資料哦。

遇到需要的登錄的網站怎麼辦?學好python,用這3招輕鬆搞定!


分享到:


相關文章: