如何使用 mechanize 来点击按钮来抓取页面以获取信息?

How can I use mechanize to click button to webscrape a page to get information?

我想抓取需要您按箭头按钮的页面内容,在该页面中,信息将通过 jquery 显示,而不是加载新页面。由于需要单击按钮,因此我在这部分使用 mechanize 而不是 nokogiri。到目前为止我所拥有的是

url = "http://brokercheck.finra.org/Individual/Summary/1327992"
mechanize = Mechanize.new 
page = mechanize.get(url)
button = page.at('.ArrowExpandDsclsr.faangledown')
new_page = mechanize.click(button)
new_page.at('#disclosuredetails')

看来 new_page 仍然没有显示包含新加载信息的页面。有人知道这是为什么吗?

您试图让机械化点击的按钮不是 "regular" 按钮,它更动态一些。它使用 javascript / ajax 在单击时获取相关数据。

Mechanize 不呈现网页的 DOM,也不提供让 javascript 与网页交互的方法。因此,它不适合与依赖 javascript 功能的动态页面交互。

对于这种情况,如果您更愿意通过 ruby 与它互动,我建议 phantomjs, either standalone or through capybara / poltergeist