如何使用Python';什么要求?
我已经通过无数的谷歌结果和堆栈溢出问题,试图找出如何做到以下几点。大多数人建议使用请求的会话类来存储会话信息 不幸的是,我尝试过的任何网站都没有提供任何解决方案。显然我做错了什么,我想在我发疯之前弄清楚这是什么 我当前的代码:如何使用Python';什么要求?,python,login,Python,Login,我已经通过无数的谷歌结果和堆栈溢出问题,试图找出如何做到以下几点。大多数人建议使用请求的会话类来存储会话信息 不幸的是,我尝试过的任何网站都没有提供任何解决方案。显然我做错了什么,我想在我发疯之前弄清楚这是什么 我当前的代码: from requests import session from bs4 import BeautifulSoup as bs USER = 'leinad177' PASSWORD = '' # removed for obvious reasons URL =
from requests import session
from bs4 import BeautifulSoup as bs
USER = 'leinad177'
PASSWORD = '' # removed for obvious reasons
URL = 'https://en.wikipedia.org/w/index.php?title=Special:UserLogin'
with session() as s:
login_data = {'wpName': USER,
'wpPassword': PASSWORD}
r = s.post(URL, data=login_data)
r = s.get('https://en.wikipedia.org/wiki/Special:Preferences')
print bs(r.text).find('div', {'id':'mw-content-text'}).p.text.strip()
# "Please log in to change your preferences."
您缺少一些POST参数。wpLoginToken可能是唯一一个强制性的
wpLoginAttempt:Log in
wpLoginToken:...
wpForceHttps:1
此外,正确的URL是:
https://en.wikipedia.org/w/index.php?title=Special:UserLogin&action=submitlogin&type=login
wpLoginToken不是静态的,您必须在登录之前使用beautifulsoup对其进行解析
如何获取令牌:
from bs4 import BeautifulSoup as bs
import requests
s = requests.session()
URL = 'https://en.wikipedia.org/w/index.php?title=Special:UserLogin'
req = s.get(URL).text
html = bs(req)
wp_login_token = html.find("input", {"name": "wpLoginToken"}).attrs['value']
你能更详细地了解检索wpLoginToken的信息吗?我已经编辑了我的帖子,并添加了如何获取令牌。