python - 如何删除 Robobrowser 中的 AttributeError

标签 python html python-3.x web-scraping robobrowser

我正在尝试登录我的大学 ID 并使用 robobrowser 获取一些信息。 当我尝试打印仪表板的内容时,我收到了此回溯。

Traceback (most recent call last):
  File "C:/Users/User/PycharmProjects/dictionary/RobobrowseErp.py", line 26, 
in <module>
    print(open.parsed)
AttributeError: 'NoneType' object has no attribute 'parsed'

这是我的代码。

from robobrowser import RoboBrowser
import requests

start = requests.session()

token = 'value_of_token'
token_1 = 'value_of_token_1 '

stuff = {

   '__VIEWSTATEGENERATOR': token,
   'btnLogIn': 'Login',
   '__VIEWSTATE': token_1,
   'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, 
like Gecko) Chrome/23.0.1271.64 Safari/537.11'
}

start.headers = stuff


browser = RoboBrowser(parser='lxml', session=start)
browser.open('http://erp.college_name.edu/')
sign_in = browser.get_form(id='some_value')
sign_in['tbUserName'].value = 'myId'
sign_in['tbPassword'].value = 'myPass'
open = browser.submit_form(sign_in)
print(open.parsed)

这是源代码。

 <form name="form1" method="post" action="Welcome_iie.aspx" id="some_value" class="bgLogin">  <div class="formWrap">
                    <div class="error"> <span id="lblDispMessage"></span></div>
                        <div class="group">
                            <input name="tbUserName" type="text" id="tbUserName"><span class="highlight"></span><span class="bar"></span>
                            <label>Username</label>
                        </div>
                        <div class="group">
                              <input name="tbPassword" type="password" id="tbPassword"><span class="highlight"></span><span class="bar"></span>
                            <label>Password</label>
                        </div>

                           <input type="submit" name="btnLogIn" value="Login" onclick="return validation();" id="btnLogIn" class="button buttonBlue used">
                    </div>

有什么帮助吗?

最佳答案

好吧,所以我收到 AttributeError 的原因是因为用简单的语言来说.. 事情没有从对象本身解析,即 opens ,它是预定义的 robobrowser 是一个自动化浏览器,因此一切都是自动化的,无论我们编写什么请求或方法或任何代码,所以我们必须这样做,

print(browser.parsed)

而不是

print(opens.parsed)

谢谢!

关于python - 如何删除 Robobrowser 中的 AttributeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42950610/

相关文章:

python - 使用递归计算纳 PIL 常数 (e)

python - flask 图像未在 html 页面上更新

Python 无法在非持久性属性上设置属性

python-3.x - 将 protobuf 可选字段更改为其中一个

html - 网站在括号中工作,但 html 文件在 firefox 和 chrome 中呈现黑屏

javascript - 如何将 Facebook 页面的评论嵌入我的网站

javascript - 将元素附加到 HTML 时看不到子项

python - 为什么 list[::-1] 不等于 list[:len(list):-1]?

python - 如何使用 Python 3.5.1 递归替换一个目录中多个文件中的字节?

javascript - 使用带有 Pythonic 回调的 Bokeh Slider 滑动图像