Wie kann ich bestimmte Daten von einer Website auskratzen?

11942
Stoney

Ich versuche, Daten von einer Website zu recherchieren.

Die URLs sind in einem example.com/x-Format mit x als aufsteigender Nummer und alle Seiten gleich strukturiert. Ich brauche nur bestimmte Überschriften und ein paar Zahlen, die sich immer am selben Ort befinden. Ich muss diese Daten dann für die Analyse in Excel in strukturierte Form bringen.

Ich habe wget schon früher zum Herunterladen von Seiten verwendet, aber ich kann nicht herausfinden, wie ich bestimmte Textzeilen packen kann.

Excel verfügt über eine Funktion zum Abrufen von Daten aus dem Web (Daten-> Aus dem Web), aber aus meiner Sicht können nur Tabellen heruntergeladen werden. Leider sind die Daten, die ich brauche, nicht in Tabellen.

2
Am Ende erstellte ich eine .txt-Datei mit einer Liste aller benötigten URLs und ließ alle Seiten in dieser Datei herunterladen. Ich habe dann [iMacros] (http://www.iopus.com/imacros/firefox/) verwendet, wie von @Lamb vorgeschlagen, um Daten lokal zu extrahieren. Ich fand den Test der Vollversion am einfachsten. Einige nützliche Anfängerfunktionen sind in der Firefox-Plugin-GUI nicht verfügbar, auch wenn derselbe Code funktioniert. Stoney vor 11 Jahren 0

2 Antworten auf die Frage

2
Ankit

Sie können iMacros verwenden, um diese Aufgabe zu automatisieren. Es ist ein Tool zum Automatisieren sich wiederholender Aufgaben. Es kann verwendet werden, um Daten von einer Site zu extrahieren und als CSV-Datei zu speichern.

Wie xin example.com/xeinem Muster (dh aufsteigend) können Sie es leicht programmieren (auch ohne Programmierkenntnisse), um jede Seite zu besuchen und Daten daraus zu extrahieren.

Weitere Informationen finden Sie im iMacros-Tutorial .

Alternativ können Sie auch ScraperWiki ausprobieren (einige Programmiererfahrung erforderlich).

Vielen Dank! iMacros scheint die Lösung zu sein, die ich brauche. Nachdem ich die ursprüngliche Frage gestellt hatte, hatte ich ScraperWiki gefunden. Es scheint ein mächtiges Werkzeug zu sein, ist für mich jedoch ein wenig kompliziert in Bezug auf die Programmierung. Stoney vor 12 Jahren 0
1
user157938

Sie können diesen Code in ein Modul einfügen:

Option Explicit Sub get_data() Dim result As String Dim myURL As String Dim winHttpReq As Object Set winHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1") myURL = "example.com/x format"  winHttpReq.Open "GET", myURL, False winHttpReq.Send result = winHttpReq.responseText Application.ScreenUpdating = True  Range("Sheet1!A1").value = result End sub 

Sie können einfach die lange Zeichenfolge in Zelle A1 parsen, um die benötigten Daten zu extrahieren.

Es wäre hilfreich, wenn Sie erklären, was der Code bewirkt. Baarn vor 11 Jahren 1