gpt4 book ai didi

ruby - 使用 Mechanize 显示数据页面的屏幕抓取网页

转载 作者:行者123 更新时间:2023-12-04 16:19:40 30 4
gpt4 key购买 nike

我正在尝试屏幕抓取一个网页(使用 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 时,我们怎么会有这样的点击操作??

最佳答案

Mechanize 不能处理 javascript,所以基本上你有两个选择:

  • 使用 scrubyt和 firewatir:这是一种编写浏览器脚本的方法(因此 Firefox 处理 javascript 部分)
  • 手动检查base 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

    关于ruby - 使用 Mechanize 显示数据页面的屏幕抓取网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/669745/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com