新手问题 怎么样用 ruby 抓取一个 javascript 的链接?

perish · 2012年08月29日 · 最后由 Perish 回复于 2012年08月30日 · 4117 次阅读

找不到什么好的方法可以取得一个含有类似下面 javascript 的页面!

比方有个页面里有如下一些内容:

ppp<a style="" class="ab" href="javascript:;">更多</a>qqq

点击这个链接会出现更多的读者,或者其他的东西在本网页中

如何用 ruby 抓取呢? 求教!谢谢!

这个都是使用 Ajax 载入的,链接有可能写死到 JS 中,也有可能存在相应的节点的 data() 中,方式比较多,要具体情况具体分析。

#1 楼 @reyesyang 这个要怎么找呢?我用 firebug 找了里面的 javascript 代码,但是找不到链接!

@Perish 一般会在 js 事件中绑定,所以还需要看看其他 js。至少取链接,如果是 js 中的,直接使用正则表达式即可,如果是在 html 中,建议使用 nokogiri: http://nokogiri.org 复杂一些的抓取,推荐使用 patron。这里有一个我以前写过的 demo: http://github.com/windy/pcapr 你可以作参考。

#3 楼 @lyfi2003 恩呢,谢谢!

firebug 可以显示所有的请求的,看看请求了什么地址,就可以直接抓取了

要获取他页面上 ajax 动态加载的内容吧,你点一下那个 “更多”,查看 firebug 中出现的请求链接(以及他的参数啊,返回的结果之类的信息),写个方法 get 请求这个链接,然后解析 response

ruby 中用 webkit 运行这个页面,然后模拟点击这个链接,随后获取内容。

#2 楼 @Perish 在 Firebug 的网络标签下面的 XHR 标签就可以看到 Ajax 请求的具体链接

#5 楼 @reus 我没有找到!呵呵 #9 楼 @xuluan 这个工具我用了,只能够停留在一个页面无法跳转到其他地方!在别的网页上可以,但是我抓的这个网页不行!

perish 关闭了讨论。 07月14日 16:51
需要 登录 后方可回复, 如果你还没有账号请 注册新账号