Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

scraping per xpath nicht möglich?

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
einmalseomitallesbitte
PostRank 2
PostRank 2
Beiträge: 40
Registriert: 28.07.2012, 16:07

Beitrag von einmalseomitallesbitte » 03.04.2013, 16:38

Hi,

folgendes Problem: Die Webseite

suite.searchmetrics.com/de/essentials?url=abakus-internet-marketing.de

enthält Werte, die sich scheinbar nicht so einfach scrapen lassen. Wenn ich z.B. den Wert der SEO Visibility haben möchte, kann ich mir dafür einen xpath Pfad vom Browser anzeigen lassen (z.B. mit firebug). Ich kann das Element unter dieser url und diesem Pfad aber trotzdem nicht ansprechen. Im Quelltext findet man auch nur einen äußeren Div. Den gesamten Inhalt des Divs, wozu die ganzen interessierenden Zahlen gehören, sieht man im Quelltext nicht.

Als absoluter Programmierer-Laie würde ich jetzt nur gerne wissen, ob es generell Mittel und Wege gibt, an den Wert ran zu kommen. Was ich dazu können muss und wie aufwändig es ist ;)

Ich hab irgendwo aufgeschnappt, dass es hier um DOM-Manipulation gehen könnte, und ich in diesem Fall "nur" die richtige url rausfinden müsste, über die der Wert abgefragt werden kann. Aber ich hab, wie gesagt nicht so die große Ahnung von der Materie. Kann auch sein, dass ich da was durcheinanderbringe.

Ich will den Wert übrigens per google docs -> importxml() scrapen. Notfalls könnte ich den Import sicher auch per php bewerkstelligen. Das Problem liegt aber glaube ich eher darin, die richtigen Parameter (url und xpath) raus zu bekommen.

Hat jemand ne Idee?

Anzeige von ABAKUS

von Anzeige von ABAKUS »


Hochwertiger Linkaufbau bei ABAKUS:
  • Google-konformer Linkaufbau
  • nachhaltiges Ranking
  • Linkbuilding Angebote zu fairen Preisen
  • internationale Backlinks
Wir bieten Beratung und Umsetzung.
Jetzt anfragen: 0511 / 300325-0

gerd_w
PostRank 6
PostRank 6
Beiträge: 355
Registriert: 08.10.2010, 13:36
Wohnort: DD

Beitrag von gerd_w » 04.04.2013, 21:33

Grundlegend sollte es sich problemlos über einen php Scraper abrufen lassen.
Ich nutze für solche Sachen immer Simple HTML DOM Parser

einmalseomitallesbitte
PostRank 2
PostRank 2
Beiträge: 40
Registriert: 28.07.2012, 16:07

Beitrag von einmalseomitallesbitte » 06.04.2013, 12:16

Klingt spannend. Danke für den Link! Ich werd's mal ausprobieren, wenn ich ein paar std zeit habe. Scraping per google Spreadsheet macht ohnehin ständig Ärger und scheint hier auch an seine Grenzen zu stoßen.

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


nerd
PostRank 10
PostRank 10
Beiträge: 4023
Registriert: 15.02.2005, 04:02

Beitrag von nerd » 07.04.2013, 01:35

einmalseomitallesbitte hat geschrieben: enthält Werte, die sich scheinbar nicht so einfach scrapen lassen. Wenn ich z.B. den Wert der SEO Visibility haben möchte, kann ich mir dafür einen xpath Pfad vom Browser anzeigen lassen (z.B. mit firebug). Ich kann das Element unter dieser url und diesem Pfad aber trotzdem nicht ansprechen. Im Quelltext findet man auch nur einen äußeren Div. Den gesamten Inhalt des Divs, wozu die ganzen interessierenden Zahlen gehören, sieht man im Quelltext nicht.
DOM wird nachtraeglich mit javascript veraendert. Soll heissen du kannst die werte nicht direkt via quellcode auslesen, sondern musst nachsehen wo und wie die werte da erzeugt werden. da nuetzt auch der PHP DOM parser nichts, da er kein javascript ausfuehrt.

Wenn du glueck hast ist es nur ein einfacher ajax call der ein xml oder json file vom server holt...

einmalseomitallesbitte
PostRank 2
PostRank 2
Beiträge: 40
Registriert: 28.07.2012, 16:07

Beitrag von einmalseomitallesbitte » 07.04.2013, 16:47

Ok, jetzt bin ich zwar noch verwirrter als vorher. Aber danke für die Info!

Habe inzwischen raus gefunden, dass ein weiter innen befindlicher Div, in dem sich weitere Divs mit den Zahlen von Interesse befinden, durch ein lib.js Script aufgerufen wird. Chrome sagt mir dazu: Zeile 142, type=text/html, Method=POST
...und irgendwas von "send" in Zeile 142

Wenn ich den Pfad zu dieser html Datei im Browser aufrufe, fehlen aber leider immernoch die Werte. Ohne javascript Kenntnisse komme ich hier glaube ich nicht weiter.

Es soll wohl nicht sein :(

...danke euch!

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 07.04.2013, 17:50

gerd_w hat geschrieben:Grundlegend sollte es sich problemlos über einen php Scraper abrufen lassen.
Ich nutze für solche Sachen immer Simple HTML DOM Parser
So grundsätzlich ist das nicht, ein einfacher PHP-Scraper, der nur den Quellcode auswertet, wird da schnell an seine Grenzen stoßen und spätestens bei den von nerd erwähnten Gründen versagen. Dass dieser von Dir verlinkte Parser es schaffen soll, habe ich aber zumindest verschiedentlich gelesen, nur noch nicht ausprobiert. Eigentlich geht es ja nur, in dem das Teil in etwa genauso viel kann wie ein Browser.
einmalseomitallesbitte hat geschrieben:Ok, jetzt bin ich zwar noch verwirrter als vorher.
Du brauchst nicht verwirrt zu sein. Angenommen eine geöffnete Seite löst einen Ajax-Request aus und das Ergebnis wird zwischen <div id:Ausgabe> und </div> ausgegeben. Dann ändert sich nichts am Quelltext, denn was als Quelltext angezeigt wird, bleibt unverändert als <div id:Ausgabe> und </div> erhalten und mehr findet ein einfaches Tool nicht. Es muss also etwas mehr können und auch das erfassen, was an dieser Stelle im Dokument ausgegeben werden soll, was aber nicht im Quelltext angezeigt wird. Zum Beispiel einen JavaScript-Interpreter, der auch jQuery versteht usw. usf, wobei es noch ein paar weitere JS Bibliotheken und Frameworks gibt, welche die aufgerufenen Seiten mitliefern bzw. referenzieren, damit ein Browser die laden und benutzen kann, bevor eine Seite richtig angezeigt werden kann.

Deshalb finden einfach gestrickte Spambots auch noch keine in einer separaten Datei verpackte E-Mail-Adressen, um mal ein ganz einfaches Beispiel zu bringen, wenn die nur über eine JS-Funktion ins Dokument eingeblendet werden.

sup
PostRank 1
PostRank 1
Beiträge: 19
Registriert: 31.01.2013, 02:23

Beitrag von sup » 11.04.2013, 10:13

Bild

output ist dann

Code: Alles auswählen

<div class="x-rank-kpi" data-title="KPI_RESEARCH_HOME_RANK.LINKS-RANK.TITLE"><div class="m10"><h3><div class="title">Link Rank</div>	<button type="button" class="x-btn-xs contextmenu" onclick="Contextmenu.show&#40;this&#41;;" data-entries="&#123;'help'&#58;true,'report'&#58;true,'export'&#58;false,'task'&#58;false,'alert'&#58;false,'goal'&#58;false,'event'&#58;false&#125;" data-task="&#123;'element'&#58;'kpi','controller'&#58;'kpi_research_home_rank','action'&#58;'links-rank','scope'&#58;'research','section'&#58;null,'project_id'&#58;null,'task'&#58;'new'&#125;" data-key="REPORT_KPI_RESEARCH_HOME_RANK.LINKS-RANK">+</button>
	<div data-key="HELP_KPI_RESEARCH_HOME_RANK.LINKS-RANK" class="x-help help"> </div><div data-key="REPORT_KPI_RESEARCH_HOME_RANK.LINKS-RANK" class="x-add help" style="display&#58;none"> </div></h3><span class="report_info"></span><div class="number"><span class="smaller">#</span>2.231</div><div class="x-lang lang-de"></div><div class="clear" /><div class="rank-bar"><div class="progress links" style="width&#58;116px"></div><div class="best" style="width&#58;122px"></div><div class="best-info hover" style="margin-left&#58;94px">best <strong><span class="smaller">#</span>1.952</strong></div><div class="competitors links" style="width&#58;149px"></div><div class="competitor-arrow" style="width&#58;151px"></div><div class="competitor-info hover" style="margin-left&#58;108px">&Oslash;&nbsp;Wettbewerber<br><span class="smaller">#</span>195</div><div class="rank-icon links"></div> </div></div></div>
Wobei 2.231 dann dein Wert ist für den Linkrank (ist jetzt nur das Beispiel für Linkrank). Geht super über cURL, cookies,refer etc pp nicht vergessen

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag