Heim Backend-Entwicklung XML/RSS-Tutorial Detailliertes Beispiel für die Verwendung von Ruby und Nokogiri zur Simulation von Crawlern zum Exportieren von RSS-Seeds

Detailliertes Beispiel für die Verwendung von Ruby und Nokogiri zur Simulation von Crawlern zum Exportieren von RSS-Seeds

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
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDetailliertes Beispiel für die Verwendung von Ruby und Nokogiri zur Simulation von Crawlern zum Exportieren von RSS-Seeds. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie implementiert man mit C++ ein einfaches Webcrawler-Programm? Wie implementiert man mit C++ ein einfaches Webcrawler-Programm? Nov 04, 2023 am 11:37 AM

Wie implementiert man mit C++ ein einfaches Webcrawler-Programm? Einleitung: Das Internet ist eine Schatzkammer an Informationen, und eine große Menge nützlicher Daten kann über Webcrawler problemlos aus dem Internet abgerufen werden. In diesem Artikel wird erläutert, wie Sie mit C++ ein einfaches Webcrawler-Programm schreiben, sowie einige allgemeine Tipps und Vorsichtsmaßnahmen. 1. Vorbereitung zur Installation eines C++-Compilers: Zuerst müssen Sie einen C++-Compiler auf Ihrem Computer installieren, z. B. gcc oder clang. Sie können „g++-v“ oder „clang“ über die Befehlszeile eingeben

Wie man PHP und XML verwendet, um die RSS-Abonnementverwaltung und -anzeige auf der Website zu implementieren Wie man PHP und XML verwendet, um die RSS-Abonnementverwaltung und -anzeige auf der Website zu implementieren Jul 29, 2023 am 10:09 AM

So verwenden Sie PHP und XML zur Implementierung der RSS-Abonnementverwaltung und -anzeige auf einer Website. RSS (Really Simple Syndication) ist ein Standardformat für die Veröffentlichung häufig aktualisierter Blogbeiträge, Nachrichten, Audio- und Videoinhalte. Viele Websites bieten RSS-Abonnementfunktionen an, sodass Benutzer problemlos die neuesten Informationen erhalten können. In diesem Artikel erfahren Sie, wie Sie PHP und XML verwenden, um die RSS-Abonnementverwaltungs- und Anzeigefunktionen der Website zu implementieren. Zuerst müssen wir ein RSS-Abonnement für XM erstellen

Eingehende Analyse der Ähnlichkeiten und Unterschiede zwischen Golang und Ruby Eingehende Analyse der Ähnlichkeiten und Unterschiede zwischen Golang und Ruby Jun 01, 2024 pm 08:46 PM

Der Hauptunterschied zwischen Go und Ruby besteht darin, dass Go eine statisch typisierte kompilierte Sprache ist, die leichte Parallelität und effiziente Speicherverwaltung unterstützt, und sich zum Schreiben von Anwendungen mit hoher Parallelität eignet. Ruby ist eine dynamisch typisierte interpretierte Sprache, die echte Parallelität, aber Speicherverwaltung unterstützt erfordert eine manuelle Steuerung und eignet sich zum Schreiben flexibler Webanwendungen.

Warum haben Python, Ruby und andere Sprachen den Inkrementoperator abgelehnt? Warum haben Python, Ruby und andere Sprachen den Inkrementoperator abgelehnt? May 11, 2023 pm 04:37 PM

Vielen Menschen ist möglicherweise ein Phänomen aufgefallen, nämlich dass in einigen modernen Programmiersprachen (natürlich nicht in Bezug auf „neue“ Programmiersprachen) die Inkrementierungs- und Dekrementierungsoperatoren abgeschafft wurden. Mit anderen Worten, es gibt in diesen Sprachen keinen Ausdruck wie i++ oder j--, sondern nur i+=1 oder j-=1. Ein solcher Ausdruck. In dieser Antwort werden die Hintergründe und Gründe für dieses Phänomen aus der Perspektive der Designphilosophie untersucht. Streng genommen könnte die Aussage „i++ verschwindet“ voreingenommen sein, da es den Anschein hat, dass nur Python, Rust und Swift unter den Mainstream-Programmiersprachen die Inkrement- und Dekrementoperatoren nicht unterstützen. Als ich zum ersten Mal mit Python in Kontakt kam, war dies auch der Fall

PHP-Anwendung: Erhalten Sie RSS-Abonnementinhalte über die Funktion PHP-Anwendung: Erhalten Sie RSS-Abonnementinhalte über die Funktion Jun 20, 2023 pm 06:25 PM

Mit der rasanten Entwicklung des Internets bieten immer mehr Websites RSS-Abonnementdienste an, sodass Benutzer problemlos aktualisierte Inhalte von der Website erhalten können. Als beliebte serverseitige Skriptsprache verfügt PHP über viele Funktionen zur Verarbeitung von RSS-Abonnements, sodass Entwickler die erforderlichen Daten einfach aus RSS-Quellen extrahieren können. In diesem Artikel wird erläutert, wie Sie mithilfe von PHP-Funktionen RSS-Abonnementinhalte erhalten. 1. Was ist RSS? Der vollständige Name von RSS lautet „ReallySimpleSyndication“ (abgekürzt).

Wie nutzt Ruby die MySQL2-Verbindung, um MySQL zu betreiben? Wie nutzt Ruby die MySQL2-Verbindung, um MySQL zu betreiben? Apr 17, 2023 pm 10:07 PM

Ruby betreibt MySQL mit MySQL2, um eine Verbindung zu MySQL herzustellen und MySQL zu betreiben. geminstallmysql2 stellt eine Verbindung zu MySQL her, um eine Verbindung herzustellen: require'mysql2'conn=Mysql2::Client.new({host:'192.168.200.73',username:'root',password:'P@ssword1!'}) Die akzeptierte Verbindung Zu den Optionen gehören: Mysql2::Clie

So schreiben Sie einen einfachen RSS-Abonnenten über PHP So schreiben Sie einen einfachen RSS-Abonnenten über PHP Sep 25, 2023 pm 07:05 PM

So schreiben Sie einen einfachen RSS-Abonnenten über PHP RSS (ReallySimpleSyndication) ist ein Format, das zum Abonnieren von Website-Inhalten verwendet wird. Über den Abonnenten können Sie die neuesten Artikel, Nachrichten, Blogs und andere Updates erhalten. In diesem Artikel schreiben wir einen einfachen RSS-Abonnenten mit PHP, um zu demonstrieren, wie man den Inhalt eines RSS-Feeds erhält und anzeigt. Bestätigen Sie die Umgebung und Vorbereitung. Bevor Sie beginnen, stellen Sie sicher, dass Sie über eine PHP-Umgebung verfügen und die SimpleXML-Erweiterung installiert haben.

So implementieren Sie eine einfache Datenkonvertierungsfunktion mit MySQL und Ruby So implementieren Sie eine einfache Datenkonvertierungsfunktion mit MySQL und Ruby Sep 21, 2023 am 08:07 AM

So implementieren Sie mit MySQL und Ruby eine einfache Datenkonvertierungsfunktion. In der tatsächlichen Entwicklungsarbeit ist häufig eine Datenkonvertierung erforderlich, um ein Datenformat in ein anderes zu konvertieren. In diesem Artikel wird erläutert, wie Sie mithilfe von MySQL und Ruby eine einfache Datenkonvertierungsfunktion implementieren, und es werden spezifische Codebeispiele bereitgestellt. Zuerst müssen wir die MySQL- und Ruby-Umgebungen installieren und konfigurieren. Stellen Sie sicher, dass Sie eine MySQL-Datenbank installiert haben und über die Befehlszeile oder andere Tools eine Verbindung zur Datenbank herstellen können. Darüber hinaus müssen Sie installieren

See all articles