J'ai décidé d'essayer le scraping, et j'ai vérifié chacun avec Node, Ruby et Python. Essayez-le avec le contenu de la récupération du titre de google.co.jp.
Accédez à la page avec request et utilisez des sélecteurs de type jQuery avec cheerio Essayez d'analyser et de rechercher des éléments.
Installez d'abord le module à partir du terminal.
$ npm install request cheerio
Créez un fichier approprié et implémentez-le.
scrape.js
var request = require('request'),
cheerio = require('cheerio');
var url = 'http://google.co.jp';
request(url, function (error, response, body)
{
if (!error && response.statusCode === 200)
{
var $ = cheerio.load(body),
title = $('title').text();
console.log(title);
}
});
Essayez de l'exécuter.
$ node scrape.js Google
cheerio implémente non seulement l'acquisition d'éléments mais également certaines méthodes de $ .addClass, $ .append et jQuery, donc cela semble être bon pour les cas où vous manipulez le DOM.
Quand j'ai fait le tour, Nokogiri est sorti le premier. C'est le de facto. Obtenez la page avec open-uri et analysez-la avec Nokogiri.
$ gem install nokogiri
Comme open-uri est inclus en standard, installez Nokogiri. Créez un fichier de manière appropriée.
scrape.rb
require 'open-uri'
require 'nokogiri'
url = 'http://www.google.co.jp/'
html = open(url)
doc = Nokogiri::HTML.parse(html)
puts doc.css('title').text
Il semble que les objets retournés par HTML.parse puissent être recherchés par XPath, CSS ou les deux. Les sélecteurs CSS sont simples et agréables.
Essayez de l'exécuter.
$ ruby scrape.rb "Google"
Très bon à faire rapidement.
J'ai d'abord trouvé Scrapy, mais c'est une bibliothèque légèrement plus grande, donc c'est un peu décontracté BeautifulSoup. ) Pour l'essayer. Il semble y avoir un HTMLParser standard, mais BeautifulSoup semble faire beaucoup de bonnes choses.
Je n'ai pas pu l'installer avec pip, alors je l'ai installé avec easy_install.
$ easy_install BeautifulSoup
Le flux de récupération des pages avec urllib et d'analyse avec BeautifulSoup.
scrape.py
import urllib
import BeautifulSoup
url = 'http://www.google.co.jp/'
html = urllib.urlopen(url).read()
soup = BeautifulSoup.BeautifulSoup(html)
print soup.find('title').string
Essayez de l'exécuter.
$ python scrape.py Google
Scrapy semble être une bibliothèque qui inclut le robot d'exploration et le scraping. Je l'ai essayé pendant un moment, alors prenez note.
$ pip install scrapy
Jetez un coup d'œil au didacticiel Documentation. Tout d'abord, créez un modèle de projet avec scrapy.
$ scrapy startproject hello
Créez un fichier directement sous les araignées et décrivez le processus de robot d'exploration et de scraping.
hello/hello/spiders/scrape.py
from scrapy.spider import Spider
from scrapy.selector import Selector
class HelloSpider(Spider):
name = "hello"
allowed_domains = ["google.co.jp"]
start_urls = ["http://www.google.co.jp/"]
def parse(self, response):
sel = Selector(response)
title = sel.css('title::text').extract()
print title
Vous pouvez utiliser des sélecteurs XPath ou CSS pour obtenir des éléments. Alors, essayez de l'exécuter à partir du terminal.
$ scrapy crawl hello
Résultat de sortie
[u'Google']
Le robot d'exploration est également inclus dans l'ensemble, il semble donc bon de le rendre solide.
Recommended Posts