使用Ruby和Nokogiri模拟爬虫导出RSS种子的实例详解
# 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('ul.libraries')[1].css('li').each_with_index do |li,i| aname =li.css('a').first name=aname.content purl=$url+aname['href'] 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
Atas ialah kandungan terperinci 使用Ruby和Nokogiri模拟爬虫导出RSS种子的实例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



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 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

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.

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

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

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

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.

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
