Ich entschied mich für das Scraping und überprüfte jedes mit Node, Ruby und Python. Versuchen Sie es mit dem Inhalt des Abrufs des Titels von google.co.jp.
Gehen Sie zur Seite mit request und verwenden Sie jQuery-ähnliche Selektoren mit cheerio. Versuchen Sie, Elemente zu analysieren und zu suchen.
Installieren Sie zuerst das Modul vom Terminal.
$ npm install request cheerio
Erstellen Sie eine entsprechende Datei und implementieren Sie sie.
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);
}
});
Versuchen Sie es auszuführen.
$ node scrape.js Google
cheerio implementiert nicht nur die Elementerfassung, sondern auch einige Methoden von $ .addClass, $ .append und jQuery. Dies scheint also für Fälle gut zu sein, in denen Sie das DOM manipulieren.
Als ich herumging, kam Nokogiri zuerst heraus. Dies ist de facto. Holen Sie sich die Seite mit open-uri und analysieren Sie sie mit Nokogiri.
$ gem install nokogiri
Da open-uri standardmäßig enthalten ist, installieren Sie Nokogiri. Erstellen Sie eine entsprechende Datei.
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
Es scheint, dass die von HTML.parse zurückgegebenen Objekte von XPath, CSS oder beiden durchsucht werden können. CSS-Selektoren sind einfach und nett.
Versuchen Sie es auszuführen.
$ ruby scrape.rb "Google"
Sehr gut, um es schnell zu machen.
Ich habe zuerst Scrapy gefunden, aber es ist eine etwas größere Bibliothek, daher ist es ein wenig lässig BeautifulSoup. ) Es versuchen. Es scheint einen Standard-HTMLParser zu geben, aber BeautifulSoup scheint viele gute Dinge zu tun.
Ich konnte es nicht mit pip installieren, also habe ich es mit easy_install installiert.
$ easy_install BeautifulSoup
Der Fluss des Abrufens von Seiten mit urllib und des Parsens mit 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
Versuchen Sie es auszuführen.
$ python scrape.py Google
Scrapy scheint eine Bibliothek zu sein, die Crawler und Scraping enthält. Ich habe es eine Weile versucht, also mach dir eine Notiz.
$ pip install scrapy
Schauen Sie sich das Tutorial Dokumentation kurz an. Erstellen Sie zunächst eine Projektvorlage mit Scrapy.
$ scrapy startproject hello
Erstellen Sie eine Datei direkt unter Spider und beschreiben Sie den Crawler- und Scraping-Prozess.
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
Sie können XPath- oder CSS-Selektoren verwenden, um Elemente abzurufen. Versuchen Sie also, dies vom Terminal aus auszuführen.
$ scrapy crawl hello
Ausgabeergebnis
[u'Google']
Der Crawler ist ebenfalls im Set enthalten, sodass er gut aussieht, um ihn solide zu machen.
Recommended Posts