Какими инструментами / библиотеками написать сканер - PullRequest
1 голос
/ 21 марта 2011

Мне нужен инструмент, который

  1. регистрирует на веб-сайте (вставляя имя и пароль в форму)

  2. после входа загружаетнесколько HTML-страниц, которые мне нужны

Такой инструмент потребуется для работы в Linux, и было бы здорово, если бы такой инструмент выглядел как обычный браузер для HTTP-сервера.

Чтоинструменты / библиотеки я могу использовать?

Ответы [ 4 ]

0 голосов
/ 24 марта 2011

Я написал мой, используя mechanize .Это красиво и просто, и даже имеет встроенную поддержку для следующего robots.txt, который я считаю важным для сканеров.

Вот как вы можете извлечь ссылки:

b = mechanize.Browser()
b.open('some-url')
links = b.links()

ИзКонечно, вам придется написать код для фактического сканирования, а также обработать глубину рекурсии.

0 голосов
/ 21 марта 2011

Wget поддерживает аутентификацию и большинство других веб-технологий.Поскольку программное обеспечение работает на консоли, вы можете обернуть его (ввод / вывод), используя ваш язык по выбору.

Вы также можете использовать его как утилиту, как, без какого-либо дополнительного программирования, чтобы получить несколько страницВы сказали, что вам нужно.Например, в документах показывают команду опции строки --http-user=user и --http-password=password для аутентификации на HTTP-сервере.

Фактически веб-сайт сообщает:

Это неинтерактивный инструмент командной строки, поэтому его можно легко вызывать из сценариев, заданий cron, терминалов без поддержки X-Windows и т. Д.

Он доступен для работы на на большинстве платформ.

0 голосов
/ 21 марта 2011
0 голосов
/ 21 марта 2011

Если вы знакомы с Python, тогда доступно Scrapy .Это связано с обучением, потому что это полная структура сканирования и скрининга.Он должен быть способен делать то, что вам нужно.Вот ссылка на документацию для симуляции пользовательских логинов .Он также поддерживает подмену пользовательского агента, поэтому он может выглядеть как браузер.Одна вещь, с которой у него будут проблемы, это взаимодействие с динамическим контентом (например, JavaScript).

Если вы хотите чего-то действительно простого, попробуйте scrape .Я использовал его в нескольких проектах, и он смог сделать эту работу.Это скорее скребок, поэтому вам придется самостоятельно добавить логику сканирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...