【发布时间】:2009-03-21 18:40:40
【问题描述】:
我正在尝试屏幕抓取一个网页(使用 Mechanize),它以网格页面的方式显示记录。我能够读取第一页中显示的值,但现在需要导航到下一页以读取适当的值。
<tr>
<td><span>1</span></td>
<td><a href="javascript:__doPostBack('gvw_offices','Page$2')">2</a></td>
<td><a href="javascript:__doPostBack('gvw_offices','Page$3')" >3</a></td>
<td><a href="javascript:__doPostBack('gvw_offices','Page$4')" >4</a></td>
<td><a href="javascript:__doPostBack('gvw_offices','Page$5')" >5</a></td>
<td><a href="javascript:__doPostBack('gvw_offices','Page$6')">6</a></td>
<td><a href="javascript:__doPostBack('gvw_offices','Page$7')" >7</a></td>
<td><a href="javascript:__doPostBack('gvw_offices','Page$8')">8</a></td>
<td><a href="javascript:__doPostBack('gvw_offices','Page$9')" >9</a></td>
<td><a href="javascript:__doPostBack('gvw_offices','Page$10')" >10</a></td>
<td><a href="javascript:__doPostBack('gvw_offices','Page$11')">...</a></td>
</tr>
我可以通过所有链接,但是当我尝试这个时:-
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 时,我们怎么能有这样的点击操作??
【问题讨论】:
标签: ruby screen-scraping paging mechanize