我正在尝试屏幕抓取一个网页(使用Mechanize),它在网格页面中显示记录.我能够读取第一页中显示的值,但现在需要导航到下一页以读取适当的值.
1 2 3 4 5 6 7 8 9 10 ...
我能够通过所有链接,但当我尝试这个: -
links = (row/"a") links.each do |link| agent.click link.attributes['href'] # This fails agent.click link # This also fails end
原因是agent.click期望URL作为参数.
有没有一种方法可以在页面显示时读取所有值?如果不是,当href是回发而不是URL时,我们怎么能有这样的点击动作?
Mechanize无法处理javascript,所以基本上你有两个选择:
使用scrubyt和firewatir:这是一种脚本浏览器的方式(因此Firefox处理javascript部分)
手动检查基本URL并动态添加页码
就像是:
base_url = 'http://example.com/gvw_offcies&page=' links.each do |link| page_number = ... #get the page number from link agent.get base_url+page_number end