【发布时间】:2014-12-01 12:56:02
【问题描述】:
我有以下脚本将搜索词发布到表单中并检索结果:
import mechanize
url = "http://www.taliesin-arlein.net/names/search.php"
br = mechanize.Browser()
br.set_handle_robots(False) # ignore robots
br.open(url)
br.select_form(name="form")
br["search_surname"] = "*"
res = br.submit()
content = res.read()
with open("surnames.txt", "w") as f:
f.write(content)
然而,渲染的网页,因此这里的脚本将搜索限制为 250 个结果。有什么方法可以绕过此限制并检索所有结果?
谢谢
【问题讨论】:
-
我不确定我是否理解您的问题:网络请求仅返回 250 个结果?
-
您有两种可能: 1 给 www.taliesin-arlein.net 的站长写一封邮件,询问所有结果; 2 入侵该网站并窃取所有姓氏.... 说真的:我觉得脚本不接受任何参数来更改答案的最大大小。
-
大声笑不想偷任何东西。我假设既然可以通过网站允许的重复查询来获取所有数据,那么也许会有某种方法可以将所有数据合二为一。是的,网络请求只返回前 250 个结果。
-
不幸的是,表单使用通配符而不是序列或间隔定义。您可以通过最后一个答案来做到这一点,并通过移动通配符进行另一个呼叫。这有点乏味而且不是很有趣,但它应该可以工作。我不会为它提交答案。
标签: python html forms curl web-scraping