有一個網站我想刮(FWIW它是svpply),並且有一個按鈕有時會顯示「顯示全部」,它是一個HTML <button>
元素。有沒有什麼方法可以使用Ruby來模擬點擊這個按鈕,並獲取點擊該按鈕後得到的整個頁面的內容,因爲按鈕顯示更多的內容?在Ruby中模仿HTML <button>
0
A
回答
1
「全部顯示」按鈕會觸發一個javascript ajax請求。自動化的唯一方法是使用可執行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
如果在按下按鈕時重新載入頁面,則可以,否則您需要可以解析javascript的內容。如果您瞭解按鈕後網站重定向的位置(即使在同一頁面上,但設置了一些參數,請使用螢火蟲進行此目的),您最終可以閱讀所需內容。
1
相關問題
- 1. 模仿紡織品和HTML中的選項卡(在Ruby中)?
- 2. 如何在Ruby中模仿execl()
- 3. ModalPopupExtender HTML模仿內容
- 4. Ruby - 如何模仿超類方法?
- 5. 用Python/Ruby模仿C預處理器?
- 6. 模仿JSON在Ruby/Rails中向外部網站發佈請求
- 7. 模仿在asp.net
- 8. 在javascript中模仿jsonp
- 9. 在asp.net中動態模仿
- 10. 在IIS 7.0中的模仿
- 11. 在數據庫中存儲類名以模仿設計模式 - Ruby on Rails
- 12. 如何模仿html選擇框
- 13. 如何用javascript模仿HTML BR標籤
- 14. 使用原型模仿HTML表單
- 15. 模仿上傳圖片的HTML表格
- 16. 如何在Angularjs中模仿HTML表單請求?
- 17. 如何在POST請求中模仿HTML表單提交?
- 18. 在html中模仿css背景封面img屬性
- 19. 如何模仿HTML元素並在Javascript/jQuery中添加屬性
- 20. 如何模仿HTML中的以下模板到XAML
- 21. 如何在php中模仿模板類
- 22. web.config中的模仿
- 23. 模仿array_intersect在MySQL
- 24. 模仿在ASP.NET MVC
- 25. 模仿在測試
- 26. 任何模仿times()的方法C#中的Ruby方法?
- 27. 在Ruby中使用class << self
- 28. << - 在Ruby中的含義
- 29. 模仿的std ::地圖<串的std ::名單<string>>在VBA
- 30. 什麼<<在Ruby on Rails的模型
這取決於按鈕的功能。它運行JavaScript嗎?如果它在表單中,請分享表單的操作。 – FakeRainBrigand 2011-12-18 23:42:59