Sie können keine URLs Markup mit AJAX aufgrund CORS (cross-origin resource sharing) abrufen und die meisten Websites im Internet wird nicht zulassen, nur jemand ihren Inhalt zu verwenden. Was Sie in Ihrem Fall tun sollten, ist eine Proxy-Methode auf Ihrem Server.
Erstellen Sie eine Aktion, die eine URL empfängt und ihr Markup auf Ihrem Server abruft. Verwenden Sie anschließend AJAX, um die HTML-Seiten mit Ihrer neuen Aktion anzufordern.
Von dort haben Sie zwei Möglichkeiten. Analysieren Sie den HTML-Code auf dem Server, extrahieren Sie alle benötigten Daten und senden Sie sie an den Client zurück OR senden Sie den gesamten HTML-Code zurück an den Client. Ich empfehle dringend, den Server zu verwenden, um das Parsing durchzuführen, es wird weniger Bandbreite benötigen und Ihr Server hat wahrscheinlich eine bessere Leistung und Geschwindigkeit als die meisten Browser bieten.
Wenn Sie sich entschieden haben, das Markup auf dem Client-Ende zu analysieren, besteht der einfachste Weg darin, den HTML-Code in ein Root-Element zu überführen und dann die Daten mit regulären Methoden abzufragen.
heißt
var $root = $('<div>').html(response.html);
console.log($root.find('h1')); // all h1 tags in response's html
Der Nachteil dabei ist, dass, sobald Sie den Browser, es zu analysieren Ihr Markup erlaubt haben, werden automatisch alle Ressourcen geladen werden, die vorhanden waren, wie Bilder.
Ich benutze .Net
nicht, so kann ich Ihnen nicht die genauen Tools zur Verfügung stellen, die Sie benötigen, aber ich schlage vor, dass Sie selbst nach Möglichkeiten suchen, diese beiden Aufgaben auf dem Server zu erledigen.
- Liest einen bestimmten URL-Inhalt in eine Zeichenfolge ein.
- Verwenden Sie einen beliebigen DOM-Parser, übergeben Sie ihm die HTML-Zeichenfolge und fragen Sie nach den Daten.
Wenn möglich Siehe, kann 'url schreiben 'von externer Webseite? Danke – guest271314
Interessieren Sie sich für alle h1 Tags oder nur die erste? Was das Bild angeht, ist es klar? Erste fünf Zeilen Text ok? – PeterKA