我必须从this site刮去前美国州长的所有信息。但是,要读出结果并按照链接进行操作,我需要访问不同的结果页面,或者,最好将每页显示的结果限制设置为最大值100(我认为不超过100每个州的结果)。然而,页面信息似乎使用JavaScript,不是一个窗体的一部分,它似乎我不能作为一个控件访问它。Python刮板机械化/ javascript
有关如何继续的任何信息?我对python来说很新,只是不时地将它用于这样的任务。这是通过主表单迭代的一些简单代码。
import mechanize
import lxml.html
import csv
site = "http://www.nga.org/cms/FormerGovBios"
output = csv.writer(open(r'output.csv','wb'))
br = mechanize.Browser()
response = br.open(site)
br.select_form(name="governorsSearchForm")
states = br.find_control(id="states-field", type="select").items
for pos, item in enumerate(states[1:2]):
statename = str([label.text for label in item.get_labels()])
print pos, item.name, statename, len(states)
br.select_form(name="governorsSearchForm")
br["state"] = [item.name]
response = br.submit(name="submit", type="submit")
# now set page limit to 100, get links and descriptions\
# and follow each link to get information
for form in br.forms():
print "Form name:", form.name
print form, "\n"
for link in br.links():
print link.text, link.url
将页面大小更改为2500并保存HTML,然后根据需要解析保存的HTML。 – EPQRS