Node.js – pobieranie stron (web scraping)

Zwykle chcąc pobrać stronę WWW i przeskanować je zawartość korzystamy z narzędzia typu Wget lub cURL, a następnie przetwarzamy dane przy pomocy np. wyrażeń XPath. Oczywistą wadą takiego rozwiązania jest brak możliwości pobrania informacji generowanych przez Java Script.

Do parsowania stron generowanych przy pomocy Java Scriptu, można wykorzystać serwer Node.js oraz konsolową przeglądarkę PhantomJS.

Instalacja Node.js

wget http://nodejs.org/dist/v0.8.14/node-v0.8.14.tar.gz
tar xvzf node-v0.8.14.tar.gz
cd node-v0.8.14
./configure
make
make install

Instalacja PhantomJS

Oprócz narzędzi potrzebnych do kompilacji programu:

apt-get install build-essential chrpath git-core libssl-dev libfontconfig1-dev

możemy zainstalować jeszcze aplikację do kompresji plików binarnych:

apt-get install upx

Przystępujemy do pobrania oraz kompilacji:

wget http://phantomjs.googlecode.com/files/phantomjs-1.7.0-source.zip
unzip phantomjs-1.7.0-source.zip
cd phantomjs-1.7.0
./build.sh
deploy/package.sh

Po kompilacji w katalogu „deploy” znajdziemy archiwum

Instalacja modułu PhantomJS dla Node.js

npm install phantom

Teraz musimy dodać ścieżkę do pliku wykonywalnego PhantomJS do zmiennych środowiskowych. W systemie Windows modyfikujemy zmienną PATH, a w systemie Linux możemy utworzyć dowiązanie symboliczne w katalogu /usr/bin.

Poprawnym efektem działania powyższej operacji ma być możliwość wydania polecenia „phantomjs”, które uruchomi aplikację.

Linki

http://nodejs.org/http://phantomjs.org/https://github.com/sgentle/phantomjs-nodehttp://net.tutsplus.com/tutorials/javascript-ajax/web-scraping-with-node-js/
Ten wpis został opublikowany w kategorii Linux. Dodaj zakładkę do bezpośredniego odnośnika.