无法解析登录的“数据”

时间:2017-03-16 16:39:06

标签: 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.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)

任何帮助?

2 个答案:

答案 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)   

问题解决后,您需要在解析数据中包含令牌,这些解析数据通常在类中隐藏,如果问题仍然存在,则表示包含更多来自表单的数据;)