2011-01-14 5 views
0

I tun haben Erlaubnis, dies zu tun.Ubuntu: Wie kann man ein Feld von mehreren Websites herunterladen?

Ich habe eine Website mit ca. 250 Seiten, von der ich die "Produktbeschreibungen" und "Produktbilder" herunterladen muss. Wie mache ich es? Ich möchte die Daten in eine CSV-Datei exportieren, damit ich sie in eine DB-Tabelle schreiben kann. Könnte mich jemand auf ein gutes Tutorial hinweisen, um damit anzufangen? Ich sollte cURL benutzen, oder?

Bisher habe ich diese aus einem anderen Stackoverflow Seite, How do I transfer wget output to a file or DB?:

curl somesite.com | grep sed etc | sed -e '/^(.*)/INSERT tableName (columnName) VALUES (\1)/' |psql dbname 

Und ich schuf dieses, das zu bekommen, die Bilder saugt:

#!/bin/bash 

lynx --source "www.site.com"|cut -d\" -f8|grep jpg|while read image 
do 
wget "www.site.com/$image" 
done 

durch dieses Video ansehen: http://www.youtube.com/watch?v=dMXzoHTTvi0 .

+0

Wenn Sie die Berechtigung haben, würden Sie nicht die Dateien lokal haben (dh müssen sie nicht als Websites mit Curl zugreifen?) – Fosco

+2

If Sie wollen umständlichen Code, dann ja die Fiddly Curl API ist in der Tat PHPs HttpRequest, PEAR Http_Request oder Zend_Http bevorzugen. Wenn es sich um eine einmalige Download-Sache handelt, könnte ein einfaches 'wget -p http: // example.org/prodcuts/*' einfacher sein. – mario

+0

Perl ''WWW :: Mechanize' kommt in den Sinn. Wahrscheinlich ein besseres Werkzeug für den Job als PHP (hauptsächlich, weil CPAN großartig ist) – derobert

Antwort

1
+0

Ich würde es gerne von der Kommandozeile aus tun, und ich hatte den Eindruck, dass 'Screen Scraping' visuell war. Ich werde diese Links jedoch sehen und auf Sie zurückkommen. Danke, Byron. –

+0

Vielleicht heißt es "rekursives Holen"? –

+0

Ich habe die Links überprüft und festgestellt, dass viele von ihnen zu Code führen, der Fehler zurückgibt. Der erste Codeblock der ersten Verbindung gibt beispielsweise ungültige Token-Fehler zurück. Ich hoffe, dass Sie irgendwie ein gutes Beispiel schaffen können. :) Ich habe einen gefunden und möchte ihn in meiner eigenen Antwort verlinken. Ich begrüße Sie jedoch zu versuchen, zuerst zurück zu kommen. Vielen Dank. –

Verwandte Themen