Язык программирования для автоматической навигации по веб-сайту?

Возврат кортежа является обычным способом сделать это в Python.

12
задан brian d foy 17 November 2009 в 21:08
поделиться

9 ответов

Я использовал Ruby и watir для этого, это очень просто и работает путем автоматизации IE или Firefox.

с таким подходом браузер обрабатывает любой беспорядок JavaScript , но вы по-прежнему имеете полный доступ к содержимому страницы , поэтому вам просто нужно добавить свою уникальную логику, например, заполнение онлайн-формы.

9
ответ дан 2 December 2019 в 05:54
поделиться

] Для Perl WWW :: Mechanize является стандартным инструментом для навигации по веб-сайтам. Он обрабатывает файлы cookie, сеансы, знает, как взаимодействовать с формами, выполнять клики и т. Д. Он поддерживает состояние в процессе работы.

Единственный недостаток - это не обработка javascript. Есть несколько модулей Perl для взаимодействия с Javascript, но они не интегрированы с WWW :: Mechanize.

6
ответ дан 2 December 2019 в 05:54
поделиться

Многие из этих ответов ориентированы на парсинг приложений. Если это то, что вы хотите, используйте эквивалент WWW :: Mechanize на выбранном вами языке (Perl является каноническим, Python также работает хорошо).

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

Два, которые выделяются, - это Twill и Selenium .

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

5
ответ дан 2 December 2019 в 05:54
поделиться

Я считаю, что вы ищете не язык, а структуру, которая позволит вам это сделать. Обычно это делается с помощью программного обеспечения для очистки веб-страниц . Есть несколько онлайн-сервисов, например Mozenda , которые позволяют делать простые вещи. Существуют также фреймворки, которые помогут вам сделать то же самое более строго. У меня есть некоторый опыт работы с screen-scraper , который, на мой взгляд, является одним из самых многофункциональных.

Еще одним типом фреймворка является поисковый робот - он проходит через веб-сайт и индексирует его (как в поисковой системе.

3
ответ дан 2 December 2019 в 05:54
поделиться

Вы можете использовать LWP :: Simple в Perl.

Вы можете найти много информации в Интернете, но Получение большего от LWP :: Simple - это учебник по Perlmonks.

2
ответ дан 2 December 2019 в 05:54
поделиться

Я бы определенно выбрал какой-нибудь язык сценариев, из которых мне больше всего нравится Ruby / Mechanize, взгляните на несколько примеров ... Perl и Python также являются хорошим выбором. , для уверенности. Если не планируется, что она будет частью какого-то другого приложения, я бы избегал статически типизированных языков - слишком много шаблонного кода IMHO.

require 'rubygems'
require 'mechanize'

agent = WWW::Mechanize.new
page = agent.get('http://google.com/')
google_form = page.form('f')
google_form.q = 'ruby mechanize'
page = agent.submit(google_form)
pp page

Mechanize - действительно отличная библиотека, поскольку это не просто HTTP-запросы GET / POST и -fetch: отслеживает файлы cookie, таким образом имитируя реальное поведение веб-браузера.

1
ответ дан 2 December 2019 в 05:54
поделиться

WatiN - это еще один способ .Net просматривать и выполнять различные действия.

1
ответ дан 2 December 2019 в 05:54
поделиться

Все это можно сделать с помощью объекта WebRequest в C #

public static void Main ()
{
    // Create a request for the URL.         
    WebRequest request = WebRequest.Create ("http://www.contoso.com/default.html");
    // If required by the server, set the credentials.
    request.Credentials = CredentialCache.DefaultCredentials;
    // Get the response.
    HttpWebResponse response = (HttpWebResponse)request.GetResponse ();
    // Display the status.
    Console.WriteLine (response.StatusDescription);
    // Get the stream containing content returned by the server.
    Stream dataStream = response.GetResponseStream ();
    // Open the stream using a StreamReader for easy access.
    StreamReader reader = new StreamReader (dataStream);
    // Read the content.
    string responseFromServer = reader.ReadToEnd ();
    // Display the content.
    Console.WriteLine (responseFromServer);
    // Cleanup the streams and the response.
    reader.Close ();
    dataStream.Close ();
    response.Close ();
}
-1
ответ дан 2 December 2019 в 05:54
поделиться

Практически любой язык теперь сделает это: perl, php / curl в Linux и asp / C # в Windows.

Проверьте это - Учебник по заполнению форм PHP

0
ответ дан 2 December 2019 в 05:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: