1

我已经登录到 Linkedin 并使用 Ruby Mechanize 访问了我的群组页面。我还可以检索页面上的问题列表。但是,我无法单击底部的“显示更多”链接,以便我可以查看整个页面以及所有问题:

require 'rubygems'
require 'mechanize'
require 'open-uri'

a = Mechanize.new { |agent|
  # LinkedIn probably refreshes after login
  agent.follow_meta_refresh = true
}

a.get('http://linkedin.com/') do |home_page|
    my_page = home_page.form_with(:name => 'login') do |form|
    form.session_key  = '********'   #put you email ID
    form.session_password = '********'  #put your password here
  end.submit

mygroups_page = a.click(my_page.link_with(:text => /Groups/))

#puts mygroups_page.links

link_to_analyse = a.click(mygroups_page.link_with(:text => 'Semantic Web'))

link_to_test = link_to_analyse.link_with(:text => 'Show more...')

puts link_to_test.class

# link_to_analyse.search(".user-contributed .groups a").each do |item|

#   puts item['href']

#  end

end

尽管页面中存在带有文本“显示更多...”的链接,但我无法单击它。link_to_test.class 显示 NilClass 可能的问题是什么?

The part of the page I need to reach is:
<div id="inline-pagination">
        <span class="running-count">20</span>
        <span class="total-count">1134</span>
            <a href="groups?mostPopularList=&amp;gid=49970&amp;split_page=2&amp;ajax=ajax" class="btn-quaternary show-more-comments" title="Show more...">
              <span>Show more...</span>
              <img src="http://static01.linkedin.com/scds/common/u/img/anim/anim_loading_16x16.gif" width="16" height="16" alt="">
            </a>
      </div>

我需要单击显示更多...我可以使用 links_with(:href => ..) 但似乎不起作用。

4

2 回答 2

1

新答案:

我刚刚检查了该组的页面源,似乎对于“显示更多”链接,他们实际上使用了三个句号而不是省略号。

您是否尝试过通过其title属性定位链接?

link_to_analyse.link_with(:title => 'Show more...')

如果这仍然不起作用,您是否尝试过将页面上所有链接的文本转储为

link_to_analyse.links.each do |link|
  puts link.text
end

---- 旧答案不正确 ----

LinkedIn 使用“Horizo​​ntal Ellipsis”Unicode 字符(代码 U+2026)作为他们的链接,“看起来”他们在末尾有“...”。所以你的代码实际上并没有找到链接。

您需要的字符:http ://www.fileformat.info/info/unicode/char/2026/index.htm

偷偷摸摸的:)

编辑:要获得链接,您当然需要在链接文本中插入适当的 Unicode 字符,如下所示:

link_to_analyse.link_with(:text => 'Show more\u2026')
于 2012-07-23T02:38:18.530 回答
0

锚点内的标签将在锚点文本周围创建一些空白区域。您可以通过以下方式解释:

link_to_analyse.link_with :text => /\A\s*Show more...\s*\Z/

但这可能就足够了:

link_to_analyse.link_with :text => /Show more.../
于 2012-07-23T03:29:10.023 回答