Какой лучший язык для очистки экрана?
Привет, я хочу создать настольное приложение (С# prob), которое обрабатывает или обрабатывает форму на сторонней веб-странице. В основном я ввожу свои данные в форме в настольном приложении, он уходит на сторонний сайт и, используя script или что-то в фоновом режиме, вводит мои данные туда (включая мой логин) и нажимает кнопку отправки для меня Я просто хочу, чтобы не загружать браузер!
Не проделав много работы (в любом случае), я задавался вопросом, может ли такой скриптовый язык, как perl, python, ruby и т.д.? Или просто делайте все это, используя С# и .net? Какой из них лучше IYO?
Я думал script, поскольку, возможно, вам понадобится подключиться к тому же script что-то из приложений на разных платформах (например, symbian mobile, где я бы не смог его развить в С#, как я бы это сделал на настольной версии).
Это не веб-приложение, иначе я могу использовать оригинальный сайт. Я понимаю, что все это звучит бессмысленно, но автоматизация для этой конкретной формы будет для меня реальным временем.
Ответы
Ответ 1
Не забудьте посмотреть BeautifulSoup, настоятельно рекомендуется.
См., например, options-for-html-scraping.
Если вам нужно выбрать язык программирования для этой задачи, я бы сказал Python
.
Более прямое решение вашего вопроса, см. twill, простой скриптовый язык для веб-браузера.
Ответ 2
Я использую С# для выскабливания. См. Полезный HtmlAgilityPack пакет.
Для разбора страниц я либо использую XPATH, либо регулярные выражения..NET также может легко обрабатывать файлы cookie, если вам это нужно.
Я написал небольшой класс, который обертывает все детали создания WebRequest, отправляет его, ждет ответа, сохраняет куки, обрабатывает сетевые ошибки и ретрансляцию и т.д. - конечный результат заключается в том, что для большинства ситуаций я может просто вызвать "GetRequest\PostRequest" и вернуть HtmlDocument.
Ответ 3
С# более чем подходит для ваших потребностей в очистке экрана. Функциональность .NET Regex очень хорошая. Однако с такой простой задачей вам будет трудно найти язык, который не делает то, что вы хотите относительно легко. Учитывая, что вы уже программируете на С#, я бы сказал, придерживайтесь этого.
Встроенная функция скрипинга экрана также является верхней меткой.
Ответ 4
Вы можете попробовать использовать .NET Agility Pack:
http://www.codeplex.com/htmlagilitypack
"Это гибкий HTML-парсер, который создает DOM для чтения/записи и поддерживает простой XPATH или XSLT (вы на самом деле не должны понимать XPATH или XSLT, чтобы использовать его, не волнуйтесь...). библиотека .NET-кода, которая позволяет анализировать HTML файлы вне Интернета. Парсер очень толерантен с искаженным HTML-кодом" реального мира". Объектная модель очень похожа на то, что предлагает System.Xml, но для документов HTML ( или потоки).
Ответ 5
Мы используем Groovy с NekoHTML. (Также обратите внимание, что теперь вы можете запустить Groovy в Google App Engine.)
Вот пример, исполняемый код в блоге Keplar:
Улучшение конкурентной разведки с помощью соскабливания с помощью Groovy
Ответ 6
IMO Perl, встроенный в функциональность регулярных выражений и способность манипулировать текстом, сделает его довольно хорошим соперником для очистки экрана.
Ответ 7
Руби очень здорово!...
попробуйте его hpricot/mechanize
Ответ 8
Groovy очень хорош.
Пример:
http://froth-and-java.blogspot.com/2007/06/html-screen-scraping-with-groovy.html
Groovy и HtmlUnit также очень хорошо сочетаются:
http://groovy.codehaus.org/Testing+Web+Applications
Htmlunit будет имитировать полный браузер с поддержкой Javascript.
Ответ 9
PHP - хороший конкурент из-за его хорошего Поддержка Perl-совместимого Regex и библиотека cURL.
Ответ 10
HTML Agility Pack (С#)
- XPath запутан, способ очистки html, чтобы он соответствовал xml, он отбрасывает теги, и вам нужно настроить выражение, чтобы заставить его работать.
- прост в использовании
Mozilla Parser (Java)
- Поддержка Solid XPath
- вам нужно установить переменные окружения, прежде чем он будет работать, что является болью
- литье между org.dom4j.Node и org.w3c.dom.Node для получения разных свойств - настоящая боль.
- умирает на нестандартном html (0.3 исправляет это)
- лучшее решение для XPath
-
проблемы с доступом к данным в узлах в NodeList
используйте для for (int я = 1; я <= list_size; я ++), чтобы обойти это
Красивый суп (Python)
У меня нет большого опыта, но вот что я нашел
- поддержка XPath
- хороший интерфейс для обработки html
Я предпочитаю Mozilla HTML Parser
Ответ 11
Взгляните на веб-язык HP (ранее WEBL).
http://en.wikipedia.org/wiki/Web_Language
Ответ 12
Или придерживайтесь WebClient в С# и некоторых строковых манипуляциях.
Ответ 13
Вторые рекомендации для python (или Beautiful Soup). В настоящее время я нахожусь в середине небольшого проекта скремблирования экрана с использованием python, а автоматическая обработка python 3 с помощью таких вещей, как проверка файлов cookie (через CookieJar и urllib), значительно упрощает работу. Python поддерживает все более сложные функции, которые могут вам понадобиться (например, регулярные выражения), а также иметь возможность быстро справляться с такими проектами (не слишком много накладных расходов при работе с материалами низкого уровня). Это также относительно кросс-платформенный.