论坛首页 编程语言技术论坛

ruby及watir统计网页中链接数量的语句

浏览 3606 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (8) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-01-08   最后修改:2010-01-08
有时候需要统计网页中或者网页某个区域中的链接数量,刚开始我尝试以下语句,但不成功:
ie.links(:id, /bra bra/).length

后来发现以下语句可行:
ie.div(:id, “searchList”).links

之后发现如下更有效的语句:

links_searchlist = ie101.links.find_all { |link| link.class_name == ‘permalink’ }
puts “the links in the searchlist:”
puts links_searchlist.length


searchlistlinks = ie102.links.find_all { |link| link.id =~ /hitURL/ }
links_searchlist = searchlistlinks.length
puts links_searchlist

searchlistlinks = ie33.links.find_all { |link| link.href =~ /something/ }
类似的语句不行:searchlistlinks = ie33.links.find_all { |link| link.url =~ /something/ }

最近发现,如果链接数量比较多,以上语句耗时太长,通过google和百度,找到了更高效的语句:

links = ie51.div(:id, ‘threadlist’).html.scan(/something/).count
puts links

我自己的原创: http://www.sdgz.cn
   发表时间:2010-01-09  
Api 2.0
0 请登录后投票
   发表时间:2010-01-09  
fireflyman : API 2.0?
0 请登录后投票
   发表时间:2010-02-22  
try001 写道


最近发现,如果链接数量比较多,以上语句耗时太长,通过google和百度,找到了更高效的语句:

links = ie51.div(:id, ‘threadlist’).html.scan(/something/).count
puts links



你最后的方法会有一些 Bug 出现吧!

例如:


<div id="threadlist">
    <a href="http://www.something.com/">http://www.something.com/</a>
</div>


如果是以上的HTML代码的情况下,
链接本应该是1个,结果却是2个。

而且,scan 方法返回的是 Array,
使用 count 来取得数组元素个数的话,是会报错的。
0 请登录后投票
   发表时间:2010-02-22  
diyuxinlang 写道
try001 写道


最近发现,如果链接数量比较多,以上语句耗时太长,通过google和百度,找到了更高效的语句:

links = ie51.div(:id, ‘threadlist’).html.scan(/something/).count
puts links



你最后的方法会有一些 Bug 出现吧!

例如:


<div id="threadlist">
    <a href="http://www.something.com/">http://www.something.com/</a>
</div>


如果是以上的HTML代码的情况下,
链接本应该是1个,结果却是2个。

而且,scan 方法返回的是 Array,
使用 count 来取得数组元素个数的话,是会报错的。

使用count是可以的,链接的数量倒没特别注意,实际应用时,如果结果是2倍的话,我通常直接除2。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics