关于Pythons爬虫登陆的问题 10C

最近刚开始学习爬虫,想模拟登陆这个网站:www.09game.com遇到了一些问题,登陆页面如下:
图片说明

找到了隐藏域中的token信息,于是想着先get此页面获取token和cookie,再post登陆。找到post的参数:
图片说明

LoginAcount是用户名,password 是密码,还有一个token,另外2个不变。

代码如下:

图片说明

import requests
from bs4 import BeautifulSoup
import warnings
#忽略警告
warnings.filterwarnings("ignore")

url = 'http://users.09game.com/User'
headers = {
    'Host': 'users.09game.com',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0'
}
data = {
    'LoginAccount': '18292911110',
    'Password': 'chenfeng',
    'ReturnUrl': '/User',
    'name': '登录'
}

s = requests.session()
#get请求,获取cookie,token
r = s.get(url=url, headers=headers)
cookies = dict(r.cookies)

soup = BeautifulSoup(r.text)
token = soup.find_all(type="hidden")[1]["value"]
data['__RequestVerificationToken'] = token


#模拟登陆
response = s.post(url=url, headers=headers, cookies=cookies, data=data)
response.encoding = 'utf8'
print(r.text)

但是结果并没有成功登陆,结果还是在登陆页面。

暂时没什么思路了,求大神帮助

2个回答

楼主,一般很少模拟登录网站的,费时。其实拿到登录之后的cookie放在header头里就行了,效果是一样的

我用urllib可以正常访问。
另外,我发现了两个问题。
1. 登录时用的URL是http://users.09game.com而不是http://users.09game.com/User。
2. post之后应该是获取返回的cookie,然后用它去访问其他地址(如:http://users.09game.com/User)
推荐你用selenium,真的是堪比按键精灵。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!