Очистка экрана | Веб-сканирование

У меня просто несколько вопросов по теме.

Может ли кто-нибудь объяснить преимущества и недостатки использования следующих языков для написания парсера:

Java/Groovy

Перл

PhP

Селен

питон

Мне также интересно, с какими проблемами можно столкнуться при очистке и, возможно, как мне с этим справиться. Например, я столкнулся с идентичностью фрагментов и еще не нашел способа с этим справиться. (я использую htmlunit)

Просто ищу несколько указателей для тех, кто немного разбирается в теме.


person StartingGroovy    schedule 15.12.2010    source источник


Ответы (3)


Преимущества/недостатки больше связаны с доступными фреймворками, чем с языком программирования как таковым.

  1. Если вам нужно удалить веб-сайты javascript/ajax, htmlunit — один из лучших вариантов, но если вы хотите использовать его напрямую, вам нужен язык, работающий на JVM (java, jython, clojure и т. д.). Другой альтернативой (для javascript/ajax) является написание надстройки Google Chrome (проще, чем Firefox) или встраивание веб-браузера в ваше приложение. Третьим вариантом является использование инструмента автоматизации, такого как: http://openqa.org/ (например, Selenium, Ватир).
  2. Если вам не нужна поддержка javascript/ajax, по моему опыту, lxml — лучшая библиотека для очистки под CPython, в основном работающая с искаженным html. Другие парсеры html работают не во всех случаях.
  3. Помимо (1) и (2), еще один важный вопрос заключается в том, есть ли у вас среда параллельного сканирования (если вам нужна скорость). (1), (2), (3) вместе трудно найти.
person sw.    schedule 17.12.2010
comment
Спасибо за подробный ответ. Вы прояснили довольно много вопросов, которые у меня были. Вы имели дело с Селеном? Я думал проверить это, но еще не сделал шаг. Я решил, что проведу небольшое исследование, прежде чем прыгать на борт. - person StartingGroovy; 18.12.2010
comment
Нет, я не использовал Selenium, я использовал Watir. В этом контексте посмотрите на прошлый вопрос о плюсах и минусах: stackoverflow.com/questions/606550/watir-vs-selenium-vs-sahi Мне просто нужно добавить, что Watir показался мне медленным. - person sw.; 22.12.2010
comment
Что ж, спасибо за участие, это было очень полезно - person StartingGroovy; 22.12.2010

Я рекомендую начать с Python + lxml. Mechanize тоже иногда бывает полезен.

Веб-сайты, которые зависят от JavaScript или файлов cookie, труднее парсить, но большинство из них просты.

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

person hoju    schedule 16.12.2010
comment
Спасибо, я рассматривал возможность изучения Python исключительно в целях очистки. Я должен буду рассмотреть ваши предложения. Также спасибо за подсказку о запуске запросов по таймеру. - person StartingGroovy; 18.12.2010

Попробуйте просмотреть TestPlan. У него есть собственный язык высокого уровня, но вы также можете писать модули на Java. Он поддерживает серверную часть Selenium, а также HTMLUnit.

Если вы можете поставить конкретную проблему (вопрос) с вашими фрагментами, то я могу ответить и на это.

person edA-qa mort-ora-y    schedule 17.12.2010
comment
Я думаю, что воспользуюсь вашим советом (поскольку я больше всего знаком с Java/Groovy). Я также думал о том, чтобы изучить Selenium; Я слышал довольно много вещей об этом. Что касается моей конкретной проблемы: stackoverflow.com/questions/4320179/ Я указал на проблему в комментарии к ответу. Я еще не решил эту конкретную проблему. Я не знаю, как работать с идентификатором фрагмента с помощью HTMLUnit. - person StartingGroovy; 18.12.2010
comment
Просто интересно, была ли у вас минутка, чтобы изучить мой вопрос? - person StartingGroovy; 21.12.2010