如何使用Mechanize单击LI?

时间:2015-09-22 23:56:27

标签: ruby web-scraping nokogiri mechanize

我只使用Nokogiri抓取静态页面。我从未尝试过自动化,我现在看到Mechanize能否做到我需要的东西。

假设我已经在Yelp中的某个城市的搜索结果页面上,我正在尝试使用Mechanize单击几个项目。目标是到达过滤器中稍微深一点的WiFi部分。

经过一些故障排除后,我想我发现问题是解析没有显示我需要点击的LI。我认为Mechanize可以处理链接和表单之类的东西,但它能否点击LI?

以下是我正在使用的内容:

require 'mechanize'

agent = Mechanize.new

page = agent.get('http://www.yelp.com/search?find_desc=&find_loc=San+Francisco%2C+CA&ns=1')

all_filters = agent.page.at('.all-filters-toggle')

p agent.click(all_filters)

这是一个列表,显示了页面上的所有链接。我注意到它从蓝色的“类别”项目跳转到搜索结果列表中。换句话说,将跳过过滤器。

  1. 有没有办法用Mechanize做到这一点?
  2. 上面的代码是否有点正确?我认为打印出来的结果应该是整个页面,包括新切换的项目。
  3. 以下是接下来进行WiFi搜索的一些步骤:

    # search a city based on user input
    # click on All Filters (list item)
    # click on More Features (link)
    # click on Wi-Fi (link)
    # select both Free and Paid (checkboxes)
    # click Search (button/form?)
    # store results
    

0 个答案:

没有答案