Python 无法解析';数据';用于登录
我正在尝试使用python登录我的大学网站,我想要欢迎页面的源代码,即我的仪表板,但当我运行此操作时,我得到的源代码与登录页面的源代码相同。这是因为我无法在登录表单上发布我的信息吗?这是密码Python 无法解析';数据';用于登录,python,python-3.x,web-scraping,beautifulsoup,python-requests,Python,Python 3.x,Web Scraping,Beautifulsoup,Python Requests,我正在尝试使用python登录我的大学网站,我想要欢迎页面的源代码,即我的仪表板,但当我运行此操作时,我得到的源代码与登录页面的源代码相同。这是因为我无法在登录表单上发布我的信息吗?这是密码 import requests from bs4 import BeautifulSoup from lxml import html import collections url = 'http://erp.college_name.edu/' opening = requests.ge
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)
有什么帮助吗?您可能没有正确登录。理想情况下,该网站将为您提供一个非200状态代码,您可以使用
opens.status\u code
进行检查。成功的请求应以2开头(例如200
)。请注意,即使您的请求不正确,某些站点也不会提供合理的状态代码。您可能没有正确登录。理想情况下,该网站将为您提供一个非200状态代码,您可以使用opens.status\u code
进行检查。成功的请求应以2开头(例如200
)。请注意,即使您的请求不正确,某些网站也不会提供合理的状态代码。更新那么在拿到代币之后 导入集合
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)
问题解决后,您需要在解析数据中包含标记,这些标记通常被命名为隐藏在类中,如果问题出现,则需要包含表单中的更多数据;) 更新
那么在拿到代币之后 导入集合
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)
问题解决后,您需要在解析数据中包含标记,这些标记通常被命名为隐藏在类中,如果问题出现,则需要包含表单中的更多数据;) 你从哪里得到的错误?查看页面上的登录表单。通常,您必须返回一个隐藏的输入字段,以防止CSRF攻击。@fodma1我没有收到错误,但得到的是登录页面的sourcec代码,而不是我的仪表板,是的,(这意味着表单没有得到im解析的信息或CSRF问题)我做了但没有得到结果的令牌,(见问题中的更新)在POST请求中,您在哪里找到要发送的字段?假设您是通过浏览器控制台找到这些字段的,我会搜索您的浏览器发送的其他一些标题,并尝试将这些标题包含在您的请求中。这可能有点傻,就像服务器检查合理的用户代理一样。@supersam654我在cl表单下找到了所有信息ass,我还需要传递什么信息?@supersam654好的,我在终端上运行了这个,得到了这个,
Traceback(最近一次调用):文件“”,第1行,在文件“C:\Users\HUNTER\AppData\Local\Programs\Python35-32\lib\encodings\cp437.py”的第19行,在encode return codeces.charmap\encode中(输入、自身错误、编码映射)[0]UnicodeEncodeError:“charmap”编解码器无法对5760位置的字符“\xa9”进行编码:字符映射到
哪里出错?请查看页面上的登录表单。通常,您必须发回一个隐藏的输入字段,以防止CSRF攻击。@fodma1我没有收到错误,而是获取登录页面的sourcec代码我的仪表板,是的,(这意味着,要么表单没有得到im解析的信息,要么CSRF问题)我做了标记,但没有得到结果(参见问题中的更新)在POST请求中,您在哪里找到要发送的字段?假设您是通过浏览器控制台找到这些字段的,我会搜索您的浏览器发送的其他一些标题,并尝试将这些标题包含在您的请求中。这可能有点傻,就像服务器检查合理的用户代理一样。@supersam654我在cl表单下找到了所有信息ass,我还需要传递什么信息?@supersam654好的,我在终端上运行了这个,得到了这个,Traceback(最近一次调用):文件“”,第1行,在文件“C:\Users\HUNTER\AppData\Local\Programs\Python35-32\lib\encodings\cp437.py”的第19行,在encode return codeces.charmap\encode中(输入,自身.errors,encoding_-map)[0]UnicodeEncodeError:“charmap”编解码器无法对5760位置的字符“\xa9”进行编码:字符映射到
作为打印的响应,我得到200(打开.status_-code)我会将输出保存为HTML页面,并在浏览器中打开它。查看页面上是否有错误或指示出错的内容。实际上,url是'https://erp.name_of_college.edu/“
但我没有使用http://
而不是https://
,因为它给了我请求。异常。错误:(“错误的握手:SysCallError(-1,'意外的EOF')”)
当我只尝试获取登录页面的源代码时,但在http://.
的情况下不一样。这可能是原因吗?print(opens.status\u code)的响应是200
我会将输出保存为HTML页面,并在浏览器中打开它。查看页面上是否有错误或指示出错的内容。实际上,url是'https://erp.name_of_college.edu/“
但我没有使用http://
而不是https://
,因为它给了我请求。异常。错误:(“握手错误:SysCallError(-1,'意外的EOF')”)
当我只尝试获取登录页面的源代码时,但在http://的情况下情况不同。
这可能是一个原因吗?