Подтвердить что ты не робот

Какой хороший инструмент для скрининга с поддержкой Javascript?

Есть ли хороший набор тестов или набор инструментов, который может автоматизировать навигацию по сайту - с поддержкой Javascript - и собирать HTML со страниц?

Конечно, я могу очистить прямой HTML с помощью BeautifulSoup. Но мне это не подходит для сайтов, для которых требуется Javascript.:)

4b9b3361

Ответ 1

Вы можете использовать Selenium или Watir для управления реальным браузером.

Ther также некоторые браузеры без браузера на основе JavaScript:

  • PhantomJS - браузер без браузера Webkit.
    • pjscrape - это система скремблирования, основанная на PhantomJS и jQuery.
    • CasperJS - это утилита для скриптинга и тестирования навигация, работающая на PhantomJS, если вам нужно сделать немного больше, чем указать URL-адреса Царапины.
  • Zombie для Node.js

Лично я знаком с Selenium, у которого есть поддержка написания сценариев автоматизации в большом количестве языков и имеет более зрелые инструменты, такие как отличный Расширение Selenium IDE для Firefox, которое может использоваться для записи и запуска тестовых систем и может экспортировать тестовые скрипты на многие языки.

Ответ 2

Использование HtmlUnit также возможно.

HtmlUnit - это "браузер GUI-Less для Java-программы". Он моделирует HTML документы и предоставляет API, который позволяет вам ссылаться на страницы, заполнять формы, ссылки на клики и т.д. так же, как вы делаете это в своем "обычном" браузере.

У него довольно хорошая поддержка JavaScript (который постоянно совершенствуется) и способный работать даже с довольно сложными Библиотеки AJAX, имитирующие Firefox или Internet Explorer в зависимости от на конфигурацию, которую вы хотите использовать.

Он обычно используется для тестирования целей или для извлечения информации с веб-сайтов.

Ответ 4

Было бы очень сложно закодировать решение, которое будет работать с любым произвольным сайтом. Каждая реализация меню навигации может быть совершенно уникальной. Я много работал со скребками, и, если вы знаете сайт, на который хотите настроить таргетинг, вот как я подхожу к нему.

Обычно, если вы анализируете конкретный javascript, используемый в навигационном меню, довольно просто использовать регулярные выражения, чтобы вытащить весь набор переменных, которые используются для построения navmenu. Я никогда не пользовался Beautiful Soup, но из вашего описания кажется, что он может работать только с элементами HTML и не работать внутри тегов script.

Если у вас все еще возникают проблемы или вам нужно подражать POST-формам или ajax, получите Firefox и установите плагин LiveHttpHeaders, Этот плагин позволит вам вручную просматривать сайт и фиксировать URL-адреса, перемещаемые вместе с любыми куки файлами, которые передаются во время ручного просмотра. Это то, что вам нужно, чтобы ваш scraperbot отправил запрос, чтобы получить действительный ответ от целевого веб-сервера (ов). Это также будет захватывать любые сделанные аякс-вызовы, и во многих случаях в вашем скребке должны быть реализованы одни и те же вызовы ajax, чтобы получить нужные ответы.

Ответ 5

Mozenda - отличный инструмент для использования.

Ответ 6

Вы можете попробовать скребок экрана с открытым исходным кодом из Scrape.it

Обновление: по состоянию на 4 апреля 2013 г. Scrape.it Screen Scraper является открытым исходным кодом на github.

Ответ 7

Имейте в виду, что и javascript fanciness возится с внутренней моделью DOM Brower страницы и ничего не делает для необработанного HTML.

Ответ 8

Я использовал Selenium для этого, и он обнаружил, что он отлично работает. Selenium работает в браузере и будет работать с Firefox, Webkit и IE. http://selenium.openqa.org/