Очистка сайта ASP.NET с помощью Ruby - PullRequest
4 голосов
/ 13 мая 2010

Я бы хотел обработать результаты поиска на этом сайте ASP.NET, используя Ruby и, желательно, просто используя Hpricot (я не могу открыть экземпляр Firefox): http://www.ngosinfo.gov.pk/SearchResults.aspx?name=&foa=0

Однако мне сложно понять, как просмотреть каждую страницу результатов. По сути, мне нужно симулировать нажатие на ссылки, подобные этим:

<a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$Pager1$2','')" class="blue_11" id="ctl00_ContentPlaceHolder1_Pager1">2</a>
<a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$Pager1$3','')" class="blue_11" id="ctl00_ContentPlaceHolder1_Pager1">3</a>

и т.д.

Я пытался использовать Net :: HTTP для обработки поста, но хотя он получил правильный HTML, результатов поиска не было (вероятно, я делаю это неправильно). Кроме того, URL-адрес страницы не содержит никаких параметров, указывающих на страницу, поэтому невозможно принудительно заставить результаты таким образом.

Любая помощь будет принята с благодарностью.

Ответы [ 3 ]

8 голосов
/ 10 ноября 2010

С использованием mechanize-1.0.0 выполняются следующие работы:

 agent = Mechanize.new
 page = agent.get('http://127.0.0.1/some.aspx')

 form = page.form("aspnetForm")
 form.add_field!('__EVENTARGUMENT', 'Page$2')
 form.add_field!('__EVENTTARGET', 'ctl00$ContentPlaceHolder1$gvwSomeList')
 page = agent.submit(form) # this gets page 2
1 голос
/ 13 мая 2010

Еще лучше проверить Механизировать. Хорошей отправной точкой в ​​очистке экрана является эпизод railscasts.com по механизации.

0 голосов
/ 13 мая 2010

Если вы только начинаете, вы можете проверить Nokogiri . Это более легкий и лучше задокументированный , чем Hpricot (который, похоже, был заброшен).

Редактировать: Якуб Хэмпл прав - Механизация - это то, что вы ищете для взаимодействия с веб-сайтами. Он работает в сотрудничестве с Nokogiri (который разбирает HTML и XML).

...