2014-01-20 13 views
6

Kann ich Scrapy auf PHP verwenden oder gibt es ähnliche Tools, die mit PHP arbeiten?Kann Scrapy an PHP arbeiten?

Ich bin nicht eine technische Person, sondern nur die zur Verfügung stehende Web Erforschung Werkzeuge und ihre Funktionen Schaben meiner technischen Kollegen zu unterstützen.

+2

[Scrapy] (http://scrapy.org/) ist in Python geschrieben ... so könnte man so etwas wie [popen] verwenden (http://php.net/manual/en/function.popen.php) aber für eine nicht technische Person - die kurze Antwort wäre nein. – naththedeveloper

+0

Fragen Sie, ob Sie PHP-Code schreiben können, um Scrapy zu verwenden, oder ob Sie mit Scrapy Websites lesen können, die mit PHP geschrieben wurden? – Quentin

Antwort

0

Sie können nicht Scrapy Spinnen mit PHP schreiben.

Trotzdem ist es sehr üblich Scrapy (Schreiben Spinne in Python) und speichern Sie die extrahierten Daten in einer Datenbank oder etwas zugänglich durch Ihre Anwendung zu verwenden. Zum Beispiel ist es ziemlich einfach, die extrahierten Elemente direkt in ElasticSearch zu speichern und Ihre Anwendung dazu zu veranlassen, ES abzufragen, um die Daten zu suchen/filtern/zu aggregieren.

Aber, wenn Ihre Kollegen Python nicht wissen, sie müssen einige Zeit damit verbringen, die Sprache zu lernen und dann den Scrapy Rahmen.

4

Scrapy ist für Python und Sie können das nicht in PHP verwenden.

jedoch in PHP können Sie Goutte verwenden diese Arbeit zu tun. Es verwendet Guzzle HTTP und Symfony-Komponenten wie BrowserKit und DomCrawler hinter den Kulissen, um diese Aufgabe zu erledigen. diese

Check out:

use Goutte\Client; 

$client = new Client(); 

// Go to the symfony.com website 
$crawler = $client->request('GET', 'http://www.symfony.com/blog/'); 

// Get the latest post in this category and display the titles 
$crawler->filter('h2 > a')->each(function ($node) { 
    echo $node->text().'\n'; 
}); 

More on usage

PS: Bitte beachten Sie, dass es JavaScript nicht tun.

+2

Wenn man Goutte mit Web Scraping erwähnt, sollte man auch erwähnen, dass es kein JavaScript macht. – envision