【问题标题】:Ruby Nokogiri Scraping data URLRuby Nokogiri 抓取数据 URL
【发布时间】:2018-09-27 13:38:50
【问题描述】:

我想要的是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

【问题讨论】:

  • 你能确认data-gt属性中的值吗?是单引号还是双引号?

标签: ruby nokogiri


【解决方案1】:

通过这两行你可以从data-hovercardid参数中得到eng_tid

page = Nokogiri::HTML(open(Rails.root + "app/views/home/index.html"))

@id = page.css("a").map {|element| element["data-hovercard"][/id=([^&]*)/].gsub('id=', '')} 

这里是 github 示例 ruby​​ on rails web 项目,它将在索引页面上显示提取的 url 编号:https://github.com/nezirz/nokogiri_stackoverflow_answer

所以你需要将这个项目克隆到你的电脑git clone git@github.com:nezirz/nokogiri_stackoverflow_answer.git 并在项目文件夹bundle install 和最后rails s 中运行,你会在网站上看到请求的数字,所以你可以使用这个代码作为示例和根据您的需要进行管理。

【讨论】:

  • 回溯(最近一次调用最后):5:来自 scrape.rb:10:in &lt;main&gt;' 4: from scrape.rb:10:in map' 3:来自 /Users/sino/.rbenv/versions/2.5.1/lib/ ruby/gems/2.5.0/gems/nokogiri-1.8.4/lib/nokogiri/xml/node_set.rb:203:in each' 2: from /Users/sino/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.4/lib/nokogiri/xml/node_set.rb:203:in upto' 1: 来自 /Users/sino/.rbenv/versions/2.5.1 /lib/ruby/gems/2.5.0/gems/nokogiri-1.8.4/lib/nokogiri/xml/node_set.rb:204:in block in each' scrape.rb:11:in block in
    ': undefined method `[]' for nil :NilClass (NoMethodError)
  • @khdeep 你能下载推送到 github 的项目并在你的电脑上试试。
  • 是的,它正在使用您的索引 html,但是当我输入索引 html 时,我会像以前一样出现错误
  • 检查 index.html 的路径
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-07
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 2016-07-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多