LINUX.ORG.RU

Прога для анализа web-страницы на си


0

0

Нужно на си написать небольшую программку, которая бы сканировала в нете веб-страницу и на основе полученных результатов что-то отправляла в нет посредством POST или GET методов. Подскажите, что почитать на ету тему. Или что поискать в гугле, атто даже запрос составить не могу :-[

Ответ на: комментарий от Wizard_

Просто я специализируюсь на Си. А какие скриптовые языки? PHP и Perl?

abr_linux
() автор топика
Ответ на: комментарий от gamecoder

Тоже вариант. Не подумал. А его вариант связать с cron'ом или другим таймером? Я хочу, чтобы страница каждые 5-10 минут проверялась

abr_linux
() автор топика
Ответ на: комментарий от abr_linux

Я делал такое на простом bash'е, используя wget, grep/egrep, sed, awk и т.п.

А почему именно на Си? По идее, скриптовые ЯП тут подходят намного лучше.

+cтопицот

bk_ ★★
()
Ответ на: комментарий от abr_linux

>А его вариант связать с cron'ом или другим таймером? Я хочу, чтобы страница каждые 5-10 минут проверялась

Так же, как и всё остальное - засунуть в крон исполнение скрипта.

yoghurt ★★★★★
()

Почитай последний RFC по протоколу HTTP

Harald ★★★★★
()

libcurl (curl.haxx.se) - чтобы получить страницу html

tidy (tidy.sourceforge.net) - чтобы приводить html в нормальный вид

libxml2 (xmlsoft.org) - чтобы вытягивать из страниц нужные данные

возможно ещё iconv и немного граблей с юникодом

пожалуй всё. Кстати, на чём писать - не принципиально; Хорошо знаешь С - пиши на С; Тебе же конкретную задачу надо решить, а не получать експиренс в новых языках

MKuznetsov ★★★★★
()
Ответ на: комментарий от MKuznetsov

Это всё есть в php.

А на Си будет сложней, т.к. там Си более универсальный язык.

Например получения страницы в PHP делается одной строкой, а в Си придётся делать писать функции работы с сокетами.

gamecoder
()
Ответ на: комментарий от Wizard_

А почему именно на Си? По идее, скриптовые ЯП тут подходят намного лучше.

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

mv ★★★★★
()
Ответ на: комментарий от MKuznetsov

Спасибо тебе за ссылки. Решил посмотреть, что за зверь етот curl и вроде даже вошёл в азарт :)

Правда, на чём счас зациклился, ето на посыле POST-данных через форму. Проблема в том, что на сайте, на котором находится мне нужная страница, необходима авторизация. В исходном коде в форме написано action=«login.php», но при вводе логина и пароля сразу появляется index.php и авторизация уже пройдена. Если при помощи curl'а сохранять в файл login.php, он нулевой; если же посылать данные по login.php, а потом скачивать index.php, то на странице признаков авторизации нет. Подскажите, как называется ета фишка? Редирект или форвард, или как-то щё?

abr_linux
() автор топика
Ответ на: комментарий от gamecoder

> Ну так внутри php-скрипта вставь sleep.

Насколько я помню PHP, веб-сервер может вырубить выполнение скрипта после определённого времени, а если убрать ету настройку, то можно получить загруз проца. Поправте, если ошибаюсь..

abr_linux
() автор топика
Ответ на: комментарий от mv

Знаете, программа по «сканированию веб-страницы и на основе полученных данных отправке результата» на том же PHP займёт строк 5-10. Сколько времени потребуется для реализации того же на Си? Всему своё место, наверное. Дело же в трудозатратах.

Wizard_ ★★★★★
()
Ответ на: комментарий от abr_linux

Для таких задач может подойти python/ruby/perl + mechanize. Может и php, но это уже на любителя.

AlexKiriukha ★★★★
()
Ответ на: комментарий от Wizard_

Сколько времени потребуется для реализации того же на Си?

Если использовать готовые библиотеки - немного. Если писать свои - да, сначала некоторое время потеряете, зато потом...

Лучше день потерять, зато потом за полчаса долететь :)

Eddy_Em ☆☆☆☆☆
()

Всё, я с POST разобрался! :D

Wizard_, я охотно верю, что на PHP строк меньше будет, но дело в том, что там мне тоже нужно было бы разобратся с методом POST и cookie - они тут тоже роль, оказалось, играют. В принципе, вот за пару часов чистого программерского времени уже наваял небольшое подобие того, чего хочу на Си + curl. Осталось парсинг HTML доработать, чтобы находить нужный текст на странице. А может просто обычным поиском по массиву полученного html-кода..

ЗЫ. Для ПХП мне кстати, нужно щё веб-сервер установить. Пока загружал апач, догадался, как в курле написать :)

Всем спасибо, кто отозвался :)

abr_linux
() автор топика
Ответ на: комментарий от abr_linux
ЗЫ. Для ПХП мне кстати, нужно щё веб-сервер установить. Пока загружал апач, догадался, как в курле написать :)

Фигею от тебя. PHP не связан с апачем. PHP может прекрасно запускаться отдельно также как и питон, перл и другие скриптовые языки.

gamecoder
()

Какой PHP, какой Си? На Python все это делается в пару строчек + можно для парсинга поставить биндинги к lxml.

enchantner
()
Ответ на: комментарий от gamecoder

Аха.. Значит, я ламернул. Спасибо, буду знать теперь ;)

abr_linux
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.