С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP: сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
 Аватар для OLDJman
0 / 0 / 0
Регистрация: 26.01.2015
Сообщений: 5

Парсинг сайта с умом

01.02.2015, 23:01. Показов 2771. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день уважаемое сообщество.

Задался целью парсить данные с сайта Vezetvsem.ru.

Соль вопроса, как сделать так, чтобы их сервер, считал меня настоящим браузером, и не мог "легко" вычислить, что я бот, и как следствие заблокировать меня?
Какие еще настройки желательно добавить, чтобы быть "настоящим" пользователем?

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

Сам парсер работает. Сначала функция авторизации получает куки, сохраняет их на жесткий диск, вторая функция используя куки, ходит по страницам.

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

Достаточно ли настроек, чтобы сервер не считал меня ботом?

Пожалуйста, подскажите, в какую степь копать, по сути это мой первый серьезный опыт, и от любой критики не откажусь.

P>S> если кому интересно, после, полученные данные будут с помощью регулярных выражений извлекаться и помещаться в базу, с которой уже будет идти основная работа.

Функция авторизации
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
function auth( $url ) //функция авторизации на сайте
{
  $uagent = "..."; // данные браузера, тут вставляю свою версию 
  $ch = curl_init( $url ); 
  curl_setopt($ch, CURLOPT_URL,$url);
  curl_setopt($ch, CURLOPT_COOKIEJAR, $_SERVER['DOCUMENT_ROOT'].'/cookieVezetVsem.txt'); // куда сохранять куки
  curl_setopt($ch, CURLOPT_POST,1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, "username=login&password=pass");
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);   // возвращает веб-страницу  
  curl_setopt($ch, CURLOPT_USERAGENT, $uagent);  // useragent
  curl_exec ($ch);
  curl_close( $ch );
}
Сам парсер

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function get_web_page( $url ) // функция парсера
{
  $uagent = "...";
 
  $ch = curl_init( $url );
 
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);   // возвращает веб-страницу
  curl_setopt($ch, CURLOPT_HEADER, 0);           // не возвращает заголовки
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);   // Установил значение 0 (строка отвечает за переход по редиректам)
  curl_setopt($ch, CURLOPT_ENCODING, "");        // обрабатывает все кодировки
  curl_setopt($ch, CURLOPT_USERAGENT, $uagent);  // useragent
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120); // таймаут соединения
  curl_setopt($ch, CURLOPT_TIMEOUT, 120);        // таймаут ответа
  curl_setopt($ch, CURLOPT_MAXREDIRS, 0);       // установил значение 0(останавливаться после 10-ого редиректа)
  curl_setopt($ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT'].'/cookieVezetVsem.txt'); // берем куки из файла
  
 $content = curl_exec( $ch );
  $err     = curl_errno( $ch );
  $errmsg  = curl_error( $ch );
  $header  = curl_getinfo( $ch );
  curl_close( $ch );
 
  $header['errno']   = $err;
  $header['errmsg']  = $errmsg;
  $header['content'] = $content;
  return $header;
}
Добавлено через 10 минут
Как я понимаю, мне нужно сказать их серверу, чтобы он держал сессию, пока я хожу по страницам заказов, и собираю данные.
Через firebug видно, что они выдают куки подлиннее тех, что мне создает сам парсер, и я так думаю, помимо самой авторизации, выставляются куки "нахождения на сайте". Интернет активность показывает, что через определенные промежутки, он обновляет key через POST запрос на адрес http://www.vezetvsem.ru/hori/keys, который выставляет какую-то куку.
У меня пока мало опыта, поэтому я не могу быть уверен, что делаю все правильно, а сам самоучка, данные ищу в интернете.
Просто не хочется, как варвар все делать. Охото аккуратно, хотя бы постараться аккуратно.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.02.2015, 23:01
Ответы с готовыми решениями:

Парсинг данных с сайта или страницы сайта
Здравствуйте, добрые люди! Есть задача спарсить данные с страницы соц сети. Или просто со страницы с помощью js. На пхп не предлагать....

Использовать с умом старый БП
1. у кого есть какие нить идеи ? а то есть бп на 350 старый но рабочий... как можно использовать его? 2. стоит ли делать деревянный...

Местоположение всплывающего окна в умом фильтре
Доброго времени суток коллеги. Я конечно от этого форума уже мало ожидаю помощи, но всё же, вдруг кто поможет. В общем ситуация такая,...

6
368 / 406 / 165
Регистрация: 29.05.2014
Сообщений: 1,494
01.02.2015, 23:34
Фи какой и не стесняется.
0
 Аватар для OLDJman
0 / 0 / 0
Регистрация: 26.01.2015
Сообщений: 5
01.02.2015, 23:46  [ТС]
Да зря вы так. Я ничего плохого делать не хочу. Просто надоело каждый раз открывать объявления, и видить что это не мое. Куда проще сделать собственный поиск, и брать то, что мне нужно.
Не считаю что это плохо, предоставить компьютеру выполнять рутинную работу, а самому просто брать нужный заказ.
В конце концов их вебвизоры и прочая ахинея так нагружают трафик, что проще буковки с сайта просматривать, без всяких приблуд и прочих радостей вебмастеров.
0
368 / 406 / 165
Регистрация: 29.05.2014
Сообщений: 1,494
02.02.2015, 00:01
да да да у каждого вора своё оправдание.
Если уж поставили защиту от парсинга, сначит бото-трафик довёл до такой меры. Если на двери весит замок, а "гость" продолжает ломится, то он определённо это заслужил ннааа...
0
 Аватар для OLDJman
0 / 0 / 0
Регистрация: 26.01.2015
Сообщений: 5
02.02.2015, 00:14  [ТС]
Да нет там защиты от парсинга. Я просто хочу своими руками сделать то, что они не смогли, а именно замена API. У них он не работает, а лишний раз нагружать их систему неверным парсингом я не хочу. Я новичок в этом деле, поэтому спрашиваю совета у вас.

Да и воровать там нечего, емае.
Я могу оставить как есть, установить тайминг, и за сутки пройтись по всем заказам, получив желаемое, но зачем? Если мой парсер как то может навредить, я его просто не буду запускать.
Если бы сервис/сайт дал мне нормальный API, или реализовал нужный мне фильтр, я бы подобным и не заморачивался.

Вы пройдите по ссылке, посмотрите что это за сайт.

Господи, о каком воровстве вообще идет речь?

Единственное мое желание, это попросить компьютер открыть за меня заказ, и выбрать тот, что мне нужен. Это же самое делает фильтр. Только нормального фильтра у них нет.

Добавлено через 3 минуты
На всякий случай, проясню момент, это не воровство контента, это желание сделать своими руками некую замену их API, который у них видите ли криво работает, а нормальных фильтров для работы с сайтом сделано не было. Администрация не желает идти на сотрудничество, вот я и ищу обходной путь.

Да и воровать там не чего.

Добавлено через 2 минуты
Вы меня конечно простите, но вы действительно думаете, что я бы стал писать тут вопрос, если бы реально занимался воровством контента?
cURL и был придуман, в первую очередь, для автоматизации рутинных задач. Мой случай, оно и есть.

Добавлено через 2 минуты
А разве не воровство Администрации сайта человеческого времени, когда они не предоставили на сервисе нормальный API, чтобы к ним официально можно было обратиться. Или нормальные фильтры поиска?
0
F́́́́́́́ŕ́́́́́́́é́́́ ́ak
 Аватар для Tatikoma
260 / 224 / 109
Регистрация: 07.07.2014
Сообщений: 965
02.02.2015, 10:28
BarbosLV, кажется тут обсуждают программирование, а не мораль. Вы ошиблись темой =)

OLDJman, те длинные куки о которых вы говорите - скорее всего от счетчиков гугл аналитикс, яндекс метрики итд, они устанавливаются JavaScript'ом и обычно они ни на что не влияют. Не сайт не заходил, так что точно не скажу.

Если хотите быть максимально похожим на человека, - то вам лучше использовать phantom.js

По вашей проблеме - возможно там просто продлевается сессия или еще что-то. Используйте две опции для curl'а - CURLOPT_COOKIEFILE и CURLOPT_COOKIEJAR - пусть они указывают на один и тот же файл (в обоих фрагментах кода), скорее всего это решит проблему.

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

И раз уже речь зашла про мораль, - уважайте содержимое robots.txt, добавьте проверки чтобы скрипт не ходил куда запрещено роботам =)
2
 Аватар для OLDJman
0 / 0 / 0
Регистрация: 26.01.2015
Сообщений: 5
02.02.2015, 12:43  [ТС]
Спасибо за помощь, попробую этот способ.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.02.2015, 12:43
Помогаю со студенческими работами здесь

Как можно с умом использовать старый HDD
Колупался сегодня в хламе и обнаружил старинный HDD на 4.7 гига... Почесал голову, взял паяльник и соорудил сей девайс. Выключатель (любой,...

Парсинг сайта
Здравствуйте уважаемые форумчане. Хочу спарсить расписание занятий определенной группы например Расписание группы ктбо И мне еще...

Парсинг сайта
Помощь в написане простого парсера на ява. На других языках тоже рассмотрю.

парсинг сайта
Всем доброй ночи, вопрос следующий. Есть сайт, с него получаю таблицу вида, но в excel выгружаю без шапки id дата тема информация ...

Парсинг сайта
Прикладываю файл проекта(украден где-то на форуме)(). ВОт ссылка на страницу - годовой отчет банка....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru