Получение html / ссылок с одного домена - PullRequest
1 голос
/ 21 марта 2011

Я немного нуб, когда дело доходит до этой темы. Я пытаюсь обойти сайт (usercript для улучшения пользовательского интерфейса какого-либо веб-приложения), и мне нужно получить ссылки с URL. На сайте есть система логина и пароля, чтобы попасть на реальный сайт, и я хотел бы начать захват ссылок, как только я попаду на основной сайт.

В основном на главном сайте после входа в систему есть несколько ссылок, которые ведут на разные страницы в одном домене (например, www.somedomain.com/page?=1), и на каждой странице есть больше ссылок, и я хотел бы сейчас пойти и извлечь ссылки со всех дочерних страниц (и продолжает захватить дочерние ссылки до точки, где я бы остановился, или на странице нет ссылок).

Я думал об использовании iframe для перехода к каждому URL и получения текста, но я почти уверен, что это медленное решение. Я изучил YQL, но некоторые URL-адреса, которые я тестировал с консоли, были заблокированы сайтом; в ответном xml говорится, что доступ к некоторым частям сайта запрещен.

Я хотел бы знать, как лучше всего это сделать. Извините, если мое объяснение сбивает с толку.

1 Ответ

1 голос
/ 21 марта 2011

Там действительно нет лучшего способа для этого. Это будет медленно, несмотря ни на что, поскольку вы в основном внедряете паука в браузер.

Поскольку страница находится в одном домене, вы можете получить исходный код, используя простой ajax. Использование jQuery:

$.get('/path/to/page', function(data){
    // data = page source
});

Затем проанализируйте источник ссылок, используя регулярное выражение, например:

/<a [^\>]+href="([^\"]+)"/g

проверьте, что они находятся в одном домене, и повторите ...

...