2011-01-15 8 views
0

Ok Ich möchte eine Scrapping-Anwendung entwickeln, um bestimmten Text innerhalb eines div-Tags auf einer Website herunterzuladen. Lets nehmen zum BeispielC# WebClient() Herunterladen eines bestimmten Teils einer Website

<div class="main_content">WOTEVER GOES IN HERE, GOES IN HERE</div> 

Wie würde ich den Text Download

gehen über

WOTEVER HIER GEHT, GEHT HIER

Ich verstehe ich brauchen würde WebClient() zu verwenden, mit

.DownloadFile(sourceFileAddress, destinationFilePath); 

Thankyou

+0

Werfen Sie einen Blick auf das [HTML Agility Pack] (http://htmlagilypack.codeplex.com/). Erstellen Sie ein Dokument mit der heruntergeladenen Quelle, und Sie sollten in der Lage sein, die relevanten Teile einfach auszuwählen. Es gibt Beispiele auf der Website. – adrianbanks

+0

Kann HTML Agility Pack mit einer Site arbeiten, die ich nicht besitze, weil sie auf ihrer Site sagen, dass Sie die .dll-Datei auf meinen Webserver hochladen müssen. Ich will es, damit ich Artikel von anderer Website für späteres Referenzieren für meinen Computerkurs nehmen kann. Ich möchte auch keine Lesezeichen verwenden, weil ich mehr als 400 habe. Ich würde die Artikel lieber in die .txt-Datei herunterladen und sie dann zu einem späteren Zeitpunkt öffnen. – mintuz

+0

Ja. Fügen Sie einen Verweis auf die DLL-Datei hinzu und verwenden Sie die Bibliothek aus Ihrem eigenen Code. Sie müssten die DLL-Datei nur auf Ihren Webserver hochladen, wenn der Code, der den Download ausführt, auf Ihrer Website läuft. – adrianbanks

Antwort

0

HTTP-Anfragen sind auf der "Ressource" Basis und diese Ressource ist eine Datei -> Sie können nicht den Text von einer Seite herunterladen, müssen Sie die Datei herunterladen und analysieren.

Wenn die Datei z. sehr groß und Sie wissen, das Div ist am Anfang können Sie über TCP/IP-Sockets und die Handhabung der Anfrage und Antwort manuell (Parsing im laufenden Betrieb), aber ich weiß nicht wirklich, ob das würde Ihnen einen Vorteil.

+0

Sie müssen nicht ganz auf die Tcp-Ebene gehen - Sie können httpwebrequest/httpwebresponse auch einen Stream öffnen. –

Verwandte Themen