2013-12-05 4 views
0

У меня есть трехуровневый сайт. Я хочу обходить и анализировать ссылки с уровней 2 и 3. Проблема в том, что на 2-м уровне есть разбиение на страницы javascript, которое предоставляет разные ссылки для каждой страницы (Всего 5 страниц).Scrap pagination использует javascript

Пример: Уровень 1: Главное меню (извлечь ссылки из категорий, используя SgmlLinkExtractor CATID = 22767) Уровень 2: Есть ссылки, которые я хочу разобрать, но есть пагинация Javascript также от того, где мне нужно извлеките остальную часть ссылок (т.е. catid = 22767 & page1 = 2) Уровень 3: Для каждой ссылки вышеприведенного шага я хочу проанализировать ответ.

Сайт (http://www.ethnos.gr/) level2 является (summary.asp? CatID = 22768) level3 статья страница, которую я хочу, чтобы разобрать (article.asp? CatID = 22768 & субидентификатор = 2 & PubID = 63929343)

Вопрос: Для каждой извлеченной ссылки с 1-го уровня, как я могу создать цикл и построить все 5 ссылок, а затем использовать SgmlLinkExtractor на 2-м уровне, чтобы следить за этими ссылками?

ответ

0

Есть два ответа на это:

  1. Обычно веб-сайты предоставляют просканировать версию своего сайта или вы можете реализовать sitemap.

  2. Вы можете использовать что-то наподобие selenium, которое отображает страницу в вашем браузере, чтобы разрешить JavaScript, и вы можете использовать ее так, как если бы пользователь все равно ее очистил.

Убедитесь, что вы скрип в ethical образом, чтобы не перегружать сайт :)

+0

Спасибо за ваш комментарий. К сожалению, сайт не содержит карту сайта. В основном, мой вопрос заключается в том, как подать SgmlLinkExtractor с построенными (настраиваемыми) URL-адресами вместо start_url. Возможно, есть способ переопределить функцию start_requests, но я не знаю, как анализировать ответ внутри. – axs203dd

+0

@ axs203dd хм, возможно, вы захотите предоставить пример того, что вы хотели бы в коде, или попытались получить лучший ответ. У вас немного высокий уровень. –