我要的是eng_tid的 id 。所以我应该怎么做才能获得这个ID码
<a data-gt="{"engagement":{"eng_type":"1","eng_src":"2","eng_tid":"100016034050254","eng_data":[]}}" href="https://www.facebook.com/thokchom.tombung?fref=pb&hc_location=profile_browser" data-hovercard="/ajax/hovercard/user.php?id=100016034050254&extragetparams=%7B%22hc_location%22%3A%22profile_browser%22%7D" data-hovercard-prefer-more-content-show="1">Thokchom Tombung</a>
require 'open-uri'
require 'nokogiri'
require 'json'
require 'csv'
page = Nokogiri::HTML(open("index.html"))
links = page.css('li._5i_q').css("a[data-gt]").children.map {|name| name.text }
puts links
CSV.open('fileId.csv', 'w') do |csv|
csv << links
end
答案 0 :(得分:1)
通过这两行,您可以从eng_tid
data-hovercard
参数中获取id
:
page = Nokogiri::HTML(open(Rails.root + "app/views/home/index.html"))
@id = page.css("a").map {|element| element["data-hovercard"][/id=([^&]*)/].gsub('id=', '')}
这是Rails Web项目上的github示例ruby,它将在索引页面https://github.com/nezirz/nokogiri_stackoverflow_answer
上显示提取的URL号。因此,您需要将此项目克隆到您的计算机git clone git@github.com:nezirz/nokogiri_stackoverflow_answer.git
中,并在项目文件夹bundle install
中运行,最后在rails s
中运行,您将在网站上看到所请求的编号,以便可以使用将此代码作为示例,并根据需要进行管理。