Rumah pembangunan bahagian belakang Tutorial XML/RSS 使用Ruby和Nokogiri模拟爬虫导出RSS种子的实例详解

使用Ruby和Nokogiri模拟爬虫导出RSS种子的实例详解

May 02, 2017 am 09:42 AM

# encoding: utf-8
require 'thread'
require 'nokogiri'
require 'open-uri'
require 'rss/maker'
 
$result=Queue.new
def extract_readme_header(no,name,url)
  frame = Nokogiri::HTML(open(url))
  return unless frame
  readme=$url+frame.css('frame')[1]['src']
  return unless readme
  open(readme) do |f|
    doc = Nokogiri::HTML(f.read)
    text=doc.css("div#content div#filecontents p")[0..4].map { |c| c.content }.join(" ").strip
    return if text.length==0
    if text !~ /(rails)|(activ_)/i
      puts "========= #{no} #{name} : #{text[0..50]}"
      date = f.last_modified
      $result << [no,name,readme,date,text]
    end
  end
rescue
  puts $!.to_s
end
 
def make_rss(items)
  RSS::Maker.make("2.0") do |m|
    m.channel.title = "GtitHub recently updated projects"
    m.channel.link = "http://localhost"
    m.channel.description = "GitHub recently updated projects"
    m.items.do_sort = true
    items.each do |no,name,url,date,descr|
      i = m.items.new_item
      i.title = name
      i.link = url
      i.description=descr
      i.date = date
    end
  end
end
 
############################## M A I N ########################
 
############# Scan list of recent project
 
lth=[]
$url="http://rdoc.info"
puts "get url #{$url}..."
doc = Nokogiri::HTML(open($url))
doc.css(&#39;ul.libraries&#39;)[1].css(&#39;li&#39;).each_with_index do |li,i|
  aname =li.css(&#39;a&#39;).first
  name=aname.content
  purl=$url+aname[&#39;href&#39;]
  lth << Thread.new(i,name,purl) { |j,n,u| extract_readme_header(j,n,u)  }
end
 
################ wait all readme are read
 
lth.each { |th| th.join() }
 
################ dequeue results and sort them by date descending
 
result=[]
result << $result.shift while $result.size>0
result.sort!  { |a,b| a[0] <=> b[0] }
 
 
################ format results in rss
 
File.open("RubyFeeds.rss","w") do |file|
  file.write make_rss(result)
end
Salin selepas log masuk

Atas ialah kandungan terperinci 使用Ruby和Nokogiri模拟爬虫导出RSS种子的实例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menggunakan C++ untuk melaksanakan program perangkak web yang mudah? Bagaimana untuk menggunakan C++ untuk melaksanakan program perangkak web yang mudah? Nov 04, 2023 am 11:37 AM

Bagaimana untuk menggunakan C++ untuk melaksanakan program perangkak web yang mudah? Pengenalan: Internet ialah khazanah maklumat, dan sejumlah besar data berguna boleh diperolehi dengan mudah daripada Internet melalui perangkak web. Artikel ini akan memperkenalkan cara menggunakan C++ untuk menulis program perangkak web yang ringkas, serta beberapa petua dan langkah berjaga-jaga yang biasa. 1. Persediaan untuk memasang pengkompil C++: Pertama, anda perlu memasang pengkompil C++ pada komputer anda, seperti gcc atau clang. Anda boleh memasukkan "g++-v" atau "clang" melalui baris arahan

Cara menggunakan PHP dan XML untuk melaksanakan pengurusan dan paparan langganan RSS di tapak web Cara menggunakan PHP dan XML untuk melaksanakan pengurusan dan paparan langganan RSS di tapak web Jul 29, 2023 am 10:09 AM

Cara menggunakan PHP dan XML untuk melaksanakan pengurusan dan paparan langganan RSS di laman web RSS (Really Simple Syndication) ialah format standard untuk menerbitkan catatan blog, berita, kandungan audio dan video yang kerap dikemas kini. Banyak laman web menyediakan fungsi langganan RSS, membolehkan pengguna mendapatkan maklumat terkini dengan mudah. Dalam artikel ini, kita akan mempelajari cara menggunakan PHP dan XML untuk melaksanakan pengurusan langganan RSS dan fungsi paparan tapak web. Pertama, kita perlu membuat langganan RSS untuk XM

Analisis mendalam tentang persamaan dan perbezaan antara Golang dan Ruby Analisis mendalam tentang persamaan dan perbezaan antara Golang dan Ruby Jun 01, 2024 pm 08:46 PM

Perbezaan utama antara Go dan Ruby ialah Go ialah bahasa tersusun ditaip secara statik yang menyokong keselarian ringan dan pengurusan memori yang cekap, dan sesuai untuk menulis aplikasi konkurensi tinggi Ruby ialah bahasa tafsiran ditaip secara dinamik yang menyokong keselarian sebenar tetapi pengurusan memori Ia memerlukan kawalan manual dan sesuai untuk menulis aplikasi web yang fleksibel.

Mengapakah Python, Ruby dan bahasa lain telah menghentikan pengendali kenaikan? Mengapakah Python, Ruby dan bahasa lain telah menghentikan pengendali kenaikan? May 11, 2023 pm 04:37 PM

Ramai orang mungkin melihat fenomena, iaitu, dalam beberapa bahasa pengaturcaraan moden (sudah tentu, tidak merujuk kepada bahasa pengaturcaraan "terbaru"), pengendali kenaikan dan pengurangan telah dibatalkan. Dalam erti kata lain, tiada ungkapan seperti i++ atau j-- dalam bahasa ini, tetapi hanya i+=1 atau j-=1 ungkapan sedemikian. Jawapan ini akan meneroka latar belakang dan sebab fenomena ini dari perspektif falsafah reka bentuk. Tegasnya, mungkin berat sebelah untuk mengatakan "i++ semakin hilang", kerana nampaknya hanya Python, Rust dan Swift di kalangan bahasa pengaturcaraan arus perdana tidak menyokong pengendali kenaikan dan pengurangan. Apabila saya mula-mula bersentuhan dengan Python, ini juga

Aplikasi PHP: Dapatkan kandungan langganan rss melalui fungsi Aplikasi PHP: Dapatkan kandungan langganan rss melalui fungsi Jun 20, 2023 pm 06:25 PM

Dengan perkembangan pesat Internet, semakin banyak laman web telah mula menyediakan perkhidmatan langganan RSS, membolehkan pengguna mendapatkan kandungan yang dikemas kini dengan mudah daripada laman web tersebut. Sebagai bahasa skrip sebelah pelayan yang popular, PHP mempunyai banyak fungsi untuk memproses langganan RSS, membolehkan pembangun mengekstrak data yang diperlukan dengan mudah daripada sumber RSS. Artikel ini akan memperkenalkan cara menggunakan fungsi PHP untuk mendapatkan kandungan langganan RSS. 1. Apakah RSS? Nama penuh RSS ialah "ReallySimpleSyndication" (disingkat

Bagaimanakah Ruby menggunakan sambungan Mysql2 untuk mengendalikan MySQL? Bagaimanakah Ruby menggunakan sambungan Mysql2 untuk mengendalikan MySQL? Apr 17, 2023 pm 10:07 PM

Ruby mengendalikan MySQL menggunakan mysql2 untuk menyambung ke mysql dan mengendalikan mysql. geminstallmysql2 menyambung ke mysql untuk mewujudkan sambungan: require'mysql2'conn=Mysql2::Client.new({host:'192.168.200.73',nama pengguna:'root',kata laluan:'P@ssword1!'}) Sambungan yang diterima pilihan termasuk: Mysql2::Clie

Bagaimana untuk menulis pelanggan RSS mudah melalui PHP Bagaimana untuk menulis pelanggan RSS mudah melalui PHP Sep 25, 2023 pm 07:05 PM

Cara menulis pelanggan RSS mudah melalui PHP RSS (ReallySimpleSyndication) adalah format yang digunakan untuk melanggan kandungan laman web Melalui pelanggan, anda boleh mendapatkan artikel terkini, berita, blog dan kemas kini lain. Dalam artikel ini, kami akan menulis pelanggan RSS mudah menggunakan PHP untuk menunjukkan cara mendapatkan dan memaparkan kandungan suapan RSS. Sahkan persekitaran dan penyediaan Sebelum memulakan, pastikan anda mempunyai persekitaran PHP dan memasang sambungan SimpleXML.

Bagaimana untuk melaksanakan fungsi penukaran data mudah menggunakan MySQL dan Ruby Bagaimana untuk melaksanakan fungsi penukaran data mudah menggunakan MySQL dan Ruby Sep 21, 2023 am 08:07 AM

Cara menggunakan MySQL dan Ruby untuk melaksanakan fungsi penukaran data yang mudah Dalam kerja pembangunan sebenar, penukaran data selalunya diperlukan untuk menukar satu format data kepada yang lain. Artikel ini akan memperkenalkan cara menggunakan MySQL dan Ruby untuk melaksanakan fungsi penukaran data yang mudah, dan menyediakan contoh kod khusus. Pertama, kita perlu memasang dan mengkonfigurasi persekitaran MySQL dan Ruby. Pastikan anda memasang pangkalan data MySQL dan boleh menyambung ke pangkalan data melalui baris arahan atau alatan lain. Di samping itu, anda perlu memasang

See all articles