Le grattage et le crawling, quelle est la différence?
Le grattage et le crawling sont deux méthodes de collecte de données sur le web. Bien qu'ils soient souvent utilisés de manière interchangeable, ils ont des fonctions et des objectifs différents.
- Crawling (Crawling):
Le crawling fait référence à l'exploration de plusieurs pages d'un site web.
Généralement, un programme appelé crawler ou spider parcourt automatiquement le site web en suivant les liens des pages ou en analysant la structure du site pour collecter des données spécifiques.
Il est largement utilisé lors du processus d'indexation de l'ensemble du web par les moteurs de recherche.
- Scraping (Grattage):
Le grattage consiste à extraire des données spécifiques d'une page web donnée.
Par exemple, il est utilisé pour collecter des informations telles que le prix d'un produit spécifique ou des articles de presse à partir d'une page web.
Le grattage se concentre sur l'extraction des données souhaitées à partir du HTML de la page collectée par le crawler ou des résultats de l'API.
En résumé, le crawling est le processus d'exploration et de collecte de pages web, tandis que le grattage est le processus d'extraction d'informations spécifiques des pages collectées.
Découverte du crawling en langage Ruby
Pour effectuer du crawling et du scraping web en Ruby, nous allons vous montrer un exemple simple en utilisant les bibliothèques **nokogiri** et **open-uri**.
Tout d'abord, vous devez installer les bibliothèques nécessaires. Exécutez la commande suivante dans votre terminal pour installer **nokogiri**. Vous n'avez pas besoin d'installer **open-uri** séparément.
gem install nokogiri
Voici un exemple de code Ruby simple pour crawler et scraper le titre d'une page web spécifique.
require 'nokogiri'
require 'open-uri'
# 웹 페이지 URL
url = 'http://example.com'
# 해당 URL의 HTML을 열고 Nokogiri 객체로 파싱합니다.
doc = Nokogiri::HTML(URI.open(url))
# 웹 페이지의 제목을 찾아 출력합니다.
title = doc.css('title').text
puts "Page Title: #{title}"
# 웹 페이지 내의 모든 링크를 크롤링하여 출력합니다.
doc.css('a').each do |link|
puts "Link: #{link['href']} Text: #{link.text}"
end
Explication du code:
En utilisant
**require 'nokogiri'**et**require 'open-uri'**, nous importons les bibliothèques nécessaires.Nous ouvrons le document HTML de l'URL donnée et le convertissons en objet Nokogiri en utilisant
**Nokogiri::HTML(URI.open(url))**.En extrayant le texte de la balise
**<title>**avec**doc.css('title').text**, nous obtenons le titre de la page.En utilisant
**doc.css('a')**, nous trouvons tous les éléments**<a>**(liens) et affichons leurs attributs**href**et leur texte.
Ce code extrait le titre de la page web donnée et collecte les informations en suivant tous les liens de la page.
Découverte du scraping en langage Ruby
Cette fois, nous vous montrons un exemple d'extraction (scraping) de données spécifiques à partir d'une page web factice en utilisant **nokogiri** et **open-uri**, tout comme pour le crawling.
Le code suivant est un exemple de scraping extrayant les titres des dernières actualités d'une page web fictive.
ruby코드 복사
require 'nokogiri'
require 'open-uri'
# 가상 웹 페이지의 URL
url = 'https://example.com/news'
# HTML 콘텐츠를 가져와 Nokogiri로 파싱합니다.
doc = Nokogiri::HTML(URI.open(url))
# 최신 뉴스 헤드라인을 담고 있는 요소를 스크래핑합니다.
# 가정: 최신 뉴스는 클래스가 'headline'인 div에 포함되어 있다.
headlines = doc.css('div.headline')
# 각 헤드라인 요소에서 텍스트를 추출하여 출력합니다.
headlines.each do |headline|
puts headline.text.strip
end
Explication du code:
Nous importons les bibliothèques nécessaires avec
**require 'nokogiri'**et**require 'open-uri'**.Nous ouvrons et analysons le document HTML de l'URL donnée avec
**Nokogiri::HTML(URI.open(url))**.En sélectionnant tous les éléments
**<div>**ayant la classe**headline**avec**doc.css('div.headline')**.Nous affichons le texte de chaque élément de titre.
Ce code montre comment extraire des données spécifiques en fonction de la structure HTML de la page web. En ajustant le sélecteur CSS en fonction de la page que vous souhaitez scraper, vous pouvez extraire diverses informations.
Lisez aussi cet article:
Collecte de données, automatisez maintenant
Commencez en 5 minutes sans coder · Expérience de crawling sur plus de 5 000 sites web




