我正在尝试使用python登录我的大学网站,我想要欢迎页面的源代码,即我的仪表板,但是当我运行这个时,我得到的是与登录页面相同的源代码..这是因为我无法在登录表单上发布我的信息?这是代码..
import requests
from bs4 import BeautifulSoup
from lxml import html
import collections
url = 'http://erp.college_name.edu/'
opening = requests.get(url)
r = requests.session()
stuff= collections.OrderedDict()
stuff = {
'tbUserName': 'my_username',
'tbPassword': 'my_password',
}
opens = r.post(url=url, data=stuff)
soup = BeautifulSoup(opens.text, 'lxml')
print(soup)
任何帮助?
答案 0 :(得分:0)
您可能无法正确登录。理想情况下,该网站会为您提供非200状态代码,您可以使用opens.status_code
进行检查。成功的请求应以2开头(例如200
)。请注意,即使您的请求不正确,某些网站也无法提供合理的状态代码。
答案 1 :(得分:0)
<强>更新强>
所以,拿到代币后
导入集合
url = 'http://erp.name_of_college.edu/'
opening = requests.get(url)
tree = html.fromstring(opening.text)
token = list(set(tree.xpath("//input[@name='name_of_token']/@value")
[0]))
r = requests.session()
data = collections.OrderedDict()
datas = {
'tbUserName': 'my_username',
'tbPassword': 'my_password',
'name_of_token' : token,
}
opens = r.post(url=url, data=datas)
soup = BeautifulSoup(opens.text, 'lxml')
print(soup)
问题解决后,您需要在解析数据中包含令牌,这些解析数据通常在类中隐藏,如果问题仍然存在,则表示包含更多来自表单的数据;)