在使用Python错误/机械化select_form()?
-
20-09-2019 - |
题
我想从一个网站放弃一些数据。 我想编写的脚本,应该得到网页的内容:
http://www.atpworldtour.com/Rankings/Singles.aspx
如果模拟用户去药谷额外积分和日期,每个选项和模拟点击进入,然后获取数据应使用回拨功能后。
现在,我一直在努力,只是选择此选项用于其他常委:
<option value="101" >101-200</option>
下面是我的(差)试图尝试这样做:
from mechanize import Browser
from BeautifulSoup import BeautifulSoup
import re
import urllib2
br = Browser();
br.open("http://www.atpworldtour.com/Rankings/Singles.aspx");
br.select_form(nr=0);
br["r"] = "101";
response = br.submit();
然而,只不过没有在select_form(NR = 0),这应该是选择第一种形式。
这是被Python返回的日志:
>>> from mechanize import Browser
>>>
>>> from BeautifulSoup import BeautifulSoup
>>> import re
>>> import urllib2
>>>
>>>
>>>
>>> br = Browser();
>>> br.open("http://www.atpworldtour.com/Rankings/Singles.aspx");
<response_seek_wrapper at 0x311bb48L whose wrapped object = <closeable_response
at 0x311be88L whose fp = <socket._fileobject object at 0x0000000002C94408>>>
>>> br.select_form(nr=0);
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "build\bdist.win-amd64\egg\mechanize\_mechanize.py", line 505, in select_
form
File "build\bdist.win-amd64\egg\mechanize\_html.py", line 546, in __getattr__
File "build\bdist.win-amd64\egg\mechanize\_html.py", line 559, in forms
File "build\bdist.win-amd64\egg\mechanize\_html.py", line 228, in forms
mechanize._html.ParseError
我找不到在机械化主页的所有功能的适当的解释。任何人都可以任点我到正确的教程使用形式和机械化或帮助我在这个特殊的问题?
安东尼
解决方案
我认为你是正确使用的库,但解析器似乎有与特定页面的麻烦。我用同样的方式图书馆另一个页面(“ http://flashcarddb.com/login 上“)和它不引发错误。
其他提示
我只是碰到了同样的问题。该网页我访问通过W3C验证,所以我不认为这是一个标记问题。然而,HTML整齐抱怨页面有一个内。一旦予固定的,机械化开始工作。
另外,我看到了一个邮件列表上对这个问题的答复。我只是想指出,增加工厂= mechanize.RobustFactory()来mechanize.Browser()并没有改变结果。
线索:定义关于您的mechanize.Browser MORE()
不隶属于 StackOverflow