Nie można pobrać żadnych znaczników adresów URL za pomocą AJAX z powodu CORS (cross-origin resource sharing), a większość witryn internetowych nie zezwala każdemu na korzystanie z ich treści. W twoim przypadku powinieneś użyć metody proxy na swoim serwerze.
Utwórz działanie, które odbiera adres URL i pobiera jego znaczniki na serwerze, a następnie użyj AJAX, aby zażądać kodu HTML strony przy użyciu nowej akcji.
Stamtąd masz dwie opcje. Parsowanie kodu HTML na serwerze, wyodrębnianie wszystkich potrzebnych danych, a następnie wysyłanie ich z powrotem do klienta powoduje, że cały kod HTML jest przesyłany do klienta. Gorąco polecam używanie serwera do parsowania, użyję mniejszej przepustowości, a twój serwer prawdopodobnie osiągnie lepszą wydajność i szybkość niż zapewnia większość przeglądarek.
Jeśli zdecydujesz się na analizę znaczników po stronie klienta, najprostszym sposobem na to będzie przekazanie kodu HTML do elementu głównego, a następnie wysłanie zapytania do danych przy użyciu zwykłych metod.
tj
var $root = $('<div>').html(response.html);
console.log($root.find('h1')); // all h1 tags in response's html
Minusem jest to, że kiedy już wolno przeglądarka do analizowania znaczników będą automatycznie ładować żadnych zasobów, które były obecne, takie jak obrazy.
Nie używam .Net
, więc nie jestem w stanie dostarczyć Ci dokładnych narzędzi, których możesz potrzebować, ale sugeruję, abyś sam sprawdził, jak wykonać te dwa zadania na serwerze.
- Odczytaj zawartość adresu URL w ciągu znaków.
- Użyj dowolnego parsera DOM, podaj ciąg HTML i zapytanie o dane.
Jeśli jest to możliwe, można zakładać 'URL 'zewnętrznej strony internetowej? Dzięki – guest271314
Jesteś zainteresowany wszystkimi tagami h1 lub tylko pierwszym; co do obrazu, jest jasne? Pierwsze pięć linii tekstu w porządku? – PeterKA