Мне нужно очистить всю информацию о бывших губернаторах США от this site. Однако, чтобы зачитать результаты, а затем следовать ссылкам, мне нужно получить доступ к различным страницам результатов или, желательно, просто установить предел результатов, показанный на странице, максимум до 100 (я не думаю, что их более 100 результаты для каждого состояния). Тем не менее, информация на странице, похоже, использует javascript, не является частью формы, и, похоже, я не могу получить к ней доступ в качестве элемента управления.Python scraper mechanize/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