Ruby Nokogiri抓取数据网址

时间:2018-09-26 17:18:56

标签: ruby nokogiri

我要的是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&amp;hc_location=profile_browser" data-hovercard="/ajax/hovercard/user.php?id=100016034050254&amp;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

1 个答案:

答案 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中运行,您将在网站上看到所请求的编号,以便可以使用将此代码作为示例,并根据需要进行管理。