Ruby Nokogiri Соскоб данных URL - PullRequest
       12

Ruby Nokogiri Соскоб данных URL

0 голосов
/ 26 сентября 2018

Вот что я хочу, это id из eng_tid.так что я должен сделать, чтобы получить этот код

<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 голосов
/ 26 сентября 2018

С этими двумя строками вы можете получить eng_tid из data-hovercard id param:

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 ​​на веб-проекте rails, который покажет вам извлеченный номер URL на странице индекса: https://github.com/nezirz/nokogiri_stackoverflow_answer

Итак, вам нужно клонировать этот проект на свой компьютер git clone git@github.com:nezirz/nokogiri_stackoverflow_answer.git и запустить его внутри папки проекта bundle install и, наконец, rails s, и вы увидите на веб-сайте запрошенный номер, чтобы вы моглииспользуйте этот код в качестве примера и управляйте им в соответствии с вашими потребностями.

...