ruby 快速刮刀获取维基百科的第一段以获取主题列表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby 快速刮刀获取维基百科的第一段以获取主题列表相关的知识,希望对你有一定的参考价值。

require 'open-uri'
require 'nokogiri'
require 'csv'
require 'cgi'

# BASE_URL = 'http://en.wikipedia.org/w/api.php?format=json&action=query&prop=revisions&rvprop=content&titles='
BASE_URL = 'http://en.wikipedia.org/wiki/'

while($input_filename.nil?)
  puts "Enter input filename (should be a CSV)"
  $input_filename = gets.chomp!
end

while($filename.nil?)
  puts "Enter a filename (output will be stored as a CSV)"
  $filename = gets.chomp!
end

output = File.new("#{$filename}.csv", "a+")

CSV.foreach($input_filename) do |row|
  puts "processing #{row[0]}"
  puts url = BASE_URL + row[0].gsub(' ', '_')
  begin
    doc = Nokogiri::HTML(open(url))
    description = doc.css('#mw-content-text').css('p')[0].content.split('.')[0,2].join('. ')
    output.puts(CSV.generate_line([row[0], description]))
  rescue
    puts "something went wrong!  skipping"
    puts $!.message
  end
end

以上是关于ruby 快速刮刀获取维基百科的第一段以获取主题列表的主要内容,如果未能解决你的问题,请参考以下文章

如何从维基百科中获取所有标题的JSON [关闭]

如何使用Wikipedia的API获取Wikipedia内容?

获取维基百科定义的PHP bot

PHP PHP bot获取维基百科的定义

wikipedia 维基百科 语料 获取 与 提取 处理 by python3.5

python 脚本我曾经重命名所有F.R.I.E.N.D.S.通过从维基百科中获取名称来获取epsiodes