qianaonan 发表于 2023-2-19 18:41

这个网站如何用requests登陆

本帖最后由 qianaonan 于 2023-2-22 11:19 编辑

点击该网站,先会有两个get,网页显示登陆页面,输入账号密码后会以postwebfrom的形式携带账号密码登陆,想问问这种形式如何requests登陆,自己也曾用按照图一这种形式编写过requests,但是最后print最后一个网址的源代码跟index的一样。

chaojiak47 发表于 2023-2-19 19:06

post 带上那些参数就可以。成功返回登录的cookies

知心 发表于 2023-2-19 19:06

你注意一下返回的cookie,登录完应该是设置本地cookie,返回去了首页。首页有检测cooeies的相关机制

天轩科技 发表于 2023-2-19 20:22

你要获取一个__viewstate 的参数呀。

know1234 发表于 2023-2-20 08:37

本帖最后由 know1234 于 2023-2-20 08:40 编辑

看下header 里面结构

tuoluo348 发表于 2023-2-20 09:40

import requests
from lxml import etree

url='http://121.43.172.248/'

req=requests.session()

res=req.get(url)
html=etree.HTML(res.text)
view=html.xpath('//*[@id="__VIEWSTATE"]/@value')

headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36',
'Referer': 'http://121.43.172.248/'
    }

data={
    '__EVENTTARGET':'',
    '__EVENTARGUMENT': '',
    '__LASTFOCUS': '',
    '__VIEWSTATE':view,
    'txtUserName': '123',
    'txtPSW': '456',
    'HiddenField1': '',
    'HiddenField2': '',
    'UICultureDropDownList': 'ZH-CN',
    'LoginButton': ''
    }

res=req.post(url,data=data,headers=headers)

print(res.text)

SysEntry 发表于 2023-2-20 09:48

apifox/postman模拟下,通过了,然后再抄代码

qianaonan 发表于 2023-2-20 10:28

tuoluo348 发表于 2023-2-20 09:40
import requests
from lxml import etree



感谢,登录成功{:1_893:}
页: [1]
查看完整版本: 这个网站如何用requests登陆