我想从一个网站放弃一些数据。 我想编写的脚本,应该得到网页的内容:

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()

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top