Maison développement back-end Tutoriel XML/RSS Exemple détaillé d'utilisation de Ruby et Nokogiri pour simuler des robots d'exploration pour exporter des graines RSS

Exemple détaillé d'utilisation de Ruby et Nokogiri pour simuler des robots d'exploration pour exporter des graines 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
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser C++ pour implémenter un simple programme de robot d'exploration Web ? Comment utiliser C++ pour implémenter un simple programme de robot d'exploration Web ? Nov 04, 2023 am 11:37 AM

Comment utiliser C++ pour implémenter un simple programme de robot d'exploration Web ? Introduction : Internet est un trésor d'informations et une grande quantité de données utiles peut être facilement obtenue à partir d'Internet grâce aux robots d'exploration du Web. Cet article explique comment utiliser C++ pour écrire un programme de robot d'exploration Web simple, ainsi que quelques conseils et précautions courants. 1. Préparation à l'installation d'un compilateur C++ : Tout d'abord, vous devez installer un compilateur C++ sur votre ordinateur, tel que gcc ou clang. Vous pouvez saisir "g++-v" ou "clang" via la ligne de commande

Comment utiliser PHP et XML pour mettre en place la gestion des abonnements RSS et leur affichage sur le site internet Comment utiliser PHP et XML pour mettre en place la gestion des abonnements RSS et leur affichage sur le site internet Jul 29, 2023 am 10:09 AM

Comment utiliser PHP et XML pour mettre en œuvre la gestion et l'affichage des abonnements RSS sur un site Web. RSS (Really Simple Syndication) est un format standard pour publier des articles de blog, des actualités, du contenu audio et vidéo fréquemment mis à jour. De nombreux sites Web proposent des fonctions d'abonnement RSS, permettant aux utilisateurs d'obtenir facilement les dernières informations. Dans cet article, nous allons apprendre à utiliser PHP et XML pour mettre en œuvre les fonctions de gestion des abonnements RSS et d'affichage du site Internet. Tout d'abord, nous devons créer un abonnement RSS à XM

Analyse approfondie des similitudes et des différences entre Golang et Ruby Analyse approfondie des similitudes et des différences entre Golang et Ruby Jun 01, 2024 pm 08:46 PM

La principale différence entre Go et Ruby est que Go est un langage compilé à typage statique qui prend en charge un parallélisme léger et une gestion efficace de la mémoire, et convient à l'écriture d'applications à haute concurrence ; Ruby est un langage interprété à typage dynamique qui prend en charge le véritable parallélisme mais la gestion de la mémoire. nécessite un contrôle manuel et convient à l’écriture d’applications Web flexibles.

Pourquoi Python, Ruby et d'autres langages ont-ils rendu obsolète l'opérateur d'incrémentation ? Pourquoi Python, Ruby et d'autres langages ont-ils rendu obsolète l'opérateur d'incrémentation ? May 11, 2023 pm 04:37 PM

Beaucoup de gens peuvent remarquer un phénomène, c'est-à-dire que dans certains langages de programmation modernes (bien sûr, sans faire référence aux langages de programmation "récents"), les opérateurs d'incrémentation et de décrémentation ont été annulés. En d'autres termes, il n'existe pas d'expression telle que i++ ou j-- dans ces langages, mais seulement i+=1 ou j-=1. Cette réponse explorera le contexte et les raisons de ce phénomène du point de vue de la philosophie du design. À proprement parler, il peut être biaisé de dire "i++ est en train de disparaître", car il semble que seuls Python, Rust et Swift parmi les langages de programmation traditionnels ne prennent pas en charge les opérateurs d'incrémentation et de décrémentation. Quand je suis entré en contact avec Python pour la première fois, c'était aussi

Application PHP : obtenez le contenu de l'abonnement RSS via la fonction Application PHP : obtenez le contenu de l'abonnement RSS via la fonction Jun 20, 2023 pm 06:25 PM

Avec le développement rapide d'Internet, de plus en plus de sites Web ont commencé à proposer des services d'abonnement RSS, permettant aux utilisateurs d'obtenir facilement du contenu mis à jour à partir du site Web. En tant que langage de script côté serveur populaire, PHP dispose de nombreuses fonctions de traitement des abonnements RSS, permettant aux développeurs d'extraire facilement les données requises des sources RSS. Cet article explique comment utiliser les fonctions PHP pour obtenir du contenu d'abonnement RSS. 1. Qu'est-ce que RSS ? Le nom complet de RSS est « ReallySimpleSyndication » (abrégé

Comment Ruby utilise-t-il la connexion Mysql2 pour faire fonctionner MySQL ? Comment Ruby utilise-t-il la connexion Mysql2 pour faire fonctionner MySQL ? Apr 17, 2023 pm 10:07 PM

Ruby exploite MySQL en utilisant mysql2 pour se connecter à mysql et faire fonctionner mysql. geminstallmysql2 se connecte à mysql pour établir une connexion : require'mysql2'conn=Mysql2::Client.new({host:'192.168.200.73',username:'root',password:'P@ssword1!'}) La connexion acceptée les options incluent : Mysql2 ::Clie

Comment écrire un simple abonné RSS via PHP Comment écrire un simple abonné RSS via PHP Sep 25, 2023 pm 07:05 PM

Comment écrire un simple abonné RSS via PHP RSS (ReallySimpleSyndication) est un format utilisé pour s'abonner au contenu d'un site Web. Grâce à l'abonné, vous pouvez obtenir les derniers articles, actualités, blogs et autres mises à jour. Dans cet article, nous allons écrire un simple abonné RSS utilisant PHP pour démontrer comment obtenir et afficher le contenu d'un flux RSS. Confirmer l'environnement et la préparation Avant de commencer, assurez-vous d'avoir un environnement PHP et d'avoir installé l'extension SimpleXML.

Comment implémenter une fonction simple de conversion de données à l'aide de MySQL et Ruby Comment implémenter une fonction simple de conversion de données à l'aide de MySQL et Ruby Sep 21, 2023 am 08:07 AM

Comment utiliser MySQL et Ruby pour implémenter une fonction de conversion de données simple. Dans le travail de développement réel, la conversion de données est souvent nécessaire pour convertir un format de données en un autre. Cet article explique comment utiliser MySQL et Ruby pour implémenter une fonction de conversion de données simple et fournit des exemples de code spécifiques. Tout d’abord, nous devons installer et configurer les environnements MySQL et Ruby. Assurez-vous qu'une base de données MySQL est installée et que vous pouvez vous connecter à la base de données via la ligne de commande ou d'autres outils. De plus, vous devez installer

See all articles