js Web Scraper

Lkjhgf Lkijhgfd

Grünschnabel
Hi ich würde gerne so ne Art webscraper machen aber irgendwie funktionieren meine bisherigen zwei anläufe nicht ganz... Es soll am Ende der html code einer beliebige homepage abgerufen und bestimmte infos aus einem <div..> ausgelesen werden können.
YQL geht leider nicht weil ich die lokalen login cookies brauche.

HTML:
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
</head>
<body>
<script>
//methode 1
$.get("http://www.w3schools.com", function(response) { alert(response) });

//methode 2
xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET", "http://www.w3schools.com", false );
xmlHttp.send( null );
alert(xmlHttp.responseText)


</script>
</body>
 
Zuletzt bearbeitet:
Das kannst du leider vergessen: http://de.wikipedia.org/wiki/Same-Origin-Policy

Wobei "leider" falsch ausgedrückt ist. Oder fändest du es gut, wenn ein JavaScript auf meiner Seite sich den Inhalt von Facebook holt (denn Cookies werden ja mitgesendet, also würde ich das sehen, was du siehst, wenn du eingeloggt bist.) ohne, dass du davon etwas mitbekommst?
 
Schade, ich wollte damit eigentlich nur ne chrome extension machen sodass ich Daten nichtmal klauen könnte... Weisst jemand vielleicht wie das z. B. bei der eBay extension oder ähnlichen funktioniert?
 
Ah danke, mit folgendem Code klappt es super . Irgendwie will er aber troztdem keine einzelnen div´s auslesen. weder mit xhr.responseText.getElementById() noch mit xhr.responsexml.getElementById()
Reicht es nicht wenn ich einfach die div id angebe?
Mit IndexOf bekomme ich komischer Weisse immer die Zahl "49058" angezeigt.

PHP:
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://www.tutorials.de/javascript-ajax/373375-js-web-scraper.html", true);
xhr.onreadystatechange = function() {
  if (xhr.readyState == 4) {
    // innerText does not let the attacker inject HTML elements.
    document.getElementById("resp").innerText = xhr.responsexml;
  }
}
xhr.send();
 
Zuletzt bearbeitet:
subbu.org:
I was reminded that the solution is to use xml:id attribute in the XML so that getElementById can recognize ID type attributes
Das xml file ist doch gar nicht von mir erstellt, da kann ich doch keine Attribute verändern?

xhr.responseText.getElementsByTagName("p"); zeigt leider auch nichts an...
was stimmt da nicht?
 
In etwa so?
PHP:
<script type="text/javascript">
function loadXMLDoc(dname)
{
xhttp=new XMLHttpRequest();
xhttp.open("GET",dname,true);
xhttp.send("");
return xhttp.responseXML;
}

xml=loadXMLDoc("http://www.tutorials.de/javascript-ajax/373375-js-web-scraper.html");
path="/html/body/div"
var nodes=xml.evaluate(path, xml, null, XPathResult.ANY_TYPE, null);
var result=nodes.iterateNext();

while (result)
  {
  document.write(result.childNodes[0].nodeValue);
  document.write("<br />");
  result=nodes.iterateNext();
  }
</script>
 
Zurück