python 模擬登陸leetcode

2021-07-10 18:13:05 字數 2309 閱讀 9245

模擬登陸,首先要知道提交頁面的**,和每次post的內容,採用chrome的瀏覽器的開發者工具,檢視。得到下圖

可以看到提交的內容包括」csrfmiddlewaretoken」、」login」、」password」,後兩個是使用者名稱和密碼,第乙個應該是一中驗證機制,每次開啟頁面都會隨機生成乙個,果不其然,在網頁的**中找到

這樣,我們只要每次把登陸介面的csrf值扣出來,然後放到和使用者名稱,密碼放到乙個字典中,就可以了。這裡取csrf值的方式使用了beautifulsoup這個庫,先得到乙個beautifulsoup物件,引數是網頁的原始碼,和使用的解析模式

url = ""

content = gethtml(url)

soup = beautifulsoup(content,"html.parser")

beautifulsoup的使用非常簡單,我們通過上面可以看到csrf值是在乙個input tag中,可以直接用下面的**獲得。

def

getxsrf

(): input_tag = soup.input

return input_tag["value"]

接下來是

def

login

(): _xsrf = getxsrf()

print

"the xsrf is ",_xsrf

login_data['csrfmiddlewaretoken']=_xsrf

login_data['login'] = "your name"

login_data['password'] = "your pwd"

res = s.post(url,headers = headers_base,data=login_data)

print res.status_code

print res.cookies

return res.cookies

這是你會發現所列印出來的res.status_code是403,也就是網頁禁止訪問的含義。為什麼會出現這種情況呢?谷歌了一下,發現leetcode登入時post的csrf並不是像知乎時藏在網頁原始碼中的,而是在你get時返回值中

url = ""

res = s.get(url=url,headers=headers_base)

print res.cookies['csrftoken']

login_data['csrfmiddlewaretoken']=res.cookies

全部**如下

from bs4 import beautifulsoup

import requests

s = requests.session()

headers_base =

login_data={}

defbs

(html_doc):

return beautifulsoup(html_doc,"html.parser")

deflogin

(): url = ""

res = s.get(url=url,headers=headers_base)

print res.cookies['csrftoken']

login_data['csrfmiddlewaretoken']=res.cookies['csrftoken']

login_data['login'] = "your name"

login_data['password'] = "your pwd"

res = s.post(url,headers = headers_base,data=login_data)

print res.status_code

return res.cookies

defmainpage

(): login()

# res = s.get(url=url,headers=headers_base,cookies=login())

# print res.text

# write2file("hist.html",res.text)

mainpage()

Python 模擬登陸

主要講述賬號密碼登陸,cookie登陸,3.cookie cookie 是伺服器對每個請求使用者的標識,伺服器可以通過cookie判斷請求使用者是不是同乙個人,經常我們登入 時,登陸成功以後我們關閉頁面,我們再次去進入這個頁面,已經是登入狀態了。cookie也有時效性,一定時間以後cookie就會失...

Python模擬登陸

這裡用知乎 www.zhihu.com 來測試的python的模擬登陸操作 首先用firefox和fiddler來攔截所有對知乎的請求,包括進入登陸的頁面的url www.zhihu.com signin 和登陸的url www.zhihu.com login phone num 檢視頁面的源 需要...

普通python模擬登陸

usr bin python import htmlparser import urlparse import urllib import urllib2 import cookielib import string import re 登入的主頁面 hosturl post資料接收和處理的頁面 我...