Scraping mit Node, Ruby und Python

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.

scraping.png

Versuchen Sie es mit Node

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.

Probieren Sie es mit Ruby

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.

Versuchen Sie es mit Python

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

Probieren Sie es mit Scrapy (Python)

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

Scraping mit Node, Ruby und Python
Einfaches Web-Scraping mit Python und Ruby
Scraping mit Python
Scraping mit Python, Selen und Chromedriver
Kratzen mit Python und schöner Suppe
Versionsverwaltung von Node, Ruby und Python mit anyenv
Mit Ruby (Rails) verschlüsseln und mit Python entschlüsseln
Üben des Web-Scrapings mit Python und Selen
Scraping in Python (Vorbereitung)
Versuchen Sie es mit Python.
Scraping mit Python + PhantomJS
Ruby, Python und Map
Python und Ruby teilen sich
Schaben mit Selen [Python]
Scraping mit Python + PyQuery
Scraping von RSS mit Python
Kratzen Sie das Essen mit Python und geben Sie es an CSV aus
Programmieren mit Python und Tkinter
Ich habe versucht, mit Python zu kratzen
Ver- und Entschlüsselung mit Python
Schaben mit Selen in Python
Python auf Ruby und wütend Ruby auf Python
Schaben mit Chromedriver in Python
Festliches Scraping mit Python, Scrapy
Python und Ruby Slice Memo
Scraping mit Selen in Python
Zundokokiyoshi mit Python / Rubin / Lua
Scraping mit Tor in Python
Ruby- und Python-Syntax ~ branch ~
Kratzwettervorhersage mit Python
Schaben mit Selen + Python Teil 2
Python mit Pyenv und Venv
Ich habe versucht, mit Python zu kratzen
Web Scraping Anfänger mit Python
Funktioniert mit Python und R.
Vergleich von CoffeeScript mit JavaScript-, Python- und Ruby-Grammatik
Kommunizieren Sie mit FX-5204PS mit Python und PyUSB
Lösen mit Ruby und Python AtCoder ARC 059 C Minimum-Quadrat-Methode
Unterschied zwischen Ruby und Python Split
Leuchtendes Leben mit Python und OpenCV
Versuchen Sie es mit Python + Beautiful Soup
Roboter läuft mit Arduino und Python
Installieren Sie Python 2.7.9 und Python 3.4.x mit pip.
AM-Modulation und Demodulation mit Python
Scraping mit Selen in Python (Basic)
Dynamischer Proxy mit Python, Ruby, PHP
Lösen mit Ruby und Python AtCoder ABC151 D Suche nach Breitenpriorität
Lösen mit Ruby und Python AtCoder ABC133 D Kumulative Summe
Web Scraping mit Python Erster Schritt
Ich habe versucht, WebScraping mit Python.
Lösen mit Ruby und Python AtCoder AISING2020 D Iterative Square-Methode
JSON-Codierung und -Decodierung mit Python
Lösen mit Ruby, Perl, Java und Python AtCoder ATC 002 A.
Hadoop-Einführung und MapReduce mit Python
[GUI in Python] PyQt5-Drag & Drop-
[Scraping] Python-Scraping
Webcrawlen, Web-Scraping, Zeichenerfassung und Speichern von Bildern mit Python
Lesen und Schreiben von NetCDF mit Python
Lassen Sie uns mit Python Image Scraping durchführen