Эмулировать печать HTML <button>в Ruby - PullRequest
0 голосов
/ 19 декабря 2011

Есть веб-сайт, который я хочу очистить (FWIW это svpply ), и есть кнопка, которая иногда показывает «Показать все», это элемент HTML <button>.Есть ли способ использовать Ruby для эмуляции нажатия этой кнопки и получения содержимого полной страницы, которое появляется после нажатия этой кнопки, поскольку кнопка отображает больше содержимого?

Ответы [ 3 ]

1 голос
/ 19 декабря 2011

Механизация может сделать это хорошо для вас.

1 голос
/ 19 декабря 2011

Кнопка «Показать все» запускает ajax-запрос javascript.Единственный способ автоматизировать это - использовать библиотеку, которая может выполнять JavaScript.Такие библиотеки, как Mechanize и ScrAPI, не будут работать.

Работают инструменты, которые управляют реальным браузером, например watir и селен.Я установил watir -webdriver и успешно заставил его нажать кнопку и показать дополнительные продукты.

require 'watir-webdriver'

b = Watir::Browser.new
b.goto 'svpply.com/editors_pick'

#count products
puts b.elements(:xpath => '//li[@data-class="Product"]').count
#=> 30

#Now click button
show_all = b.button(:id => "btn_all")
show_all.click
sleep 4

#count products again
puts b.elements(:xpath => '//li[@data-class="Product"]').count
#=>60
0 голосов
/ 19 декабря 2011

Если страница перезагружается, когда вы нажимаете кнопку, вы можете, в противном случае вам нужно что-то, что может анализировать JavaScript.Если вы понимаете, куда веб-сайт перенаправляет вас после нажатия кнопки (даже на той же странице, но с некоторыми установленными параметрами, используйте для этого firebug), вы в конечном итоге сможете прочитать то, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...