Объясняю, на сайте-доноре есть информация, которая обновляется каждые 5 секунд, эту информацию требуется спарсить. Но если я буду подключаться к сайту каждые 5 секунд, сами понимаете, забанят через 5 минут. Так вот, как же удерживать постоянное подключение парсера к данной странице и стягивать информацию сразу после ее обновления и уже манипулировать ей?
@hrvasiliy ну у вас от того что будет постоянное соединение с с сервером, всеравно будут в цикле посылаться http запросы, следовательно забанят.
Если страница обновляется раз в 5 секунд реалтаймом (через js) можно просто загрузить ее в phantomjs каком и просто держать. Тогда не будет новых запросов и все будет в рамках "закона".
@hrvasiliy это headless браузер. Если вы можете зайти в обычном браузере на страничку, и там данные будут сами по себе обновляться раз в 5 секунд, то тогда точно будет ок.
Хотя можно просто посмотреть откуда данные берутся и забирать напрямую.
@Fesor Спасибо вам) Столько умных слов, мало чего понимаю, но очень хочу разбираться во всем этом деле... Не много отступлю от основного вопроса, не могли бы вы мне посоветовать, что стоит изучать для того, чтобы хорошо разбираться в веб-программировании? Не знаю, неккоректный вопрос, наверное, но охото писать свои проекты... Можете посоветовать книги? Или же просто указать путь?) Если поконкретнее, то написание своих движков(не для стандартных задач), различные парсеры, вот то, что вы написали выше и т.д. На данные момент знаю HTML, CSS, PHP немного, JS учу.... Вот :)
@hrvasiliy как учиться именно писать что-то подсказать не могу... я учился методом тыка в свое время. Ну и писал много просто.
Но есть штуки в WEB которые не сильно зависят от языка программирования. Тот же HTTP вам в любом случае придется изучить, как данные передаются (хотя бы примерно), что такое соединение и т.д.
Это все можно и на вики почитать. А там уже по ссылкам бегать.
@hrvasiliy ну если она сама обновляется, можете:
1) если страничка просто релоадится или во фрейме релоадится, можно просто забить на все ваши загоны так как никто не будет банить за поведение, допускаемое на самом сайте. 1 запрос в 5 секунд это не DDOS.
2) если страничка подгружает данные по ajax, можно посмотреть откуда. что передается, что отдается... если там отдается json какой вообще ништяк, будет проще парсить.
3) если страничка релоадит данные по websockets то да, тогда phantomjs
@hrvasiliy откуда страничка данные берет, в каком виде и т.д. Там есть фильтры, XHR (ajax мол) и websockets. Если ни то и ни другое, можно смело бомбить запросами.
При этическую сторону вопроса, даже никто не упомянул. Сейчас так нормально, в порядке вещей? Хм..
Если все законно, не проще договориться с владельцем сайта и использовать его api?
Наверно не так сформулировал. Про этическую сторону имелось в виду - дергать почем зря чужой сервер каждые несколько секунд. Мы же дергаем не только инфу из базы, но и всю страницу(речь о парсинге). Следовательно, создаем паразитную нагрузку в целом. Поэтому, если владелец сайта явно не запретил использовать информацию с сайта(отсюда фраза о законности, учитывая, что инфа отдается только зарегистрированным), то проще выйти с ним на контакт лично. Почему то, у нас это не очень принято, а часто даже не приходит в голову.
Ну, если один "дергатель" нет. А если 10000 и дергать чаще? Просто, обычно думают только о своих хотелках и ищут какие то странные пути. Паразитная нагрузка это же не только вредная для сервера(хотя, что за сервер такой), сколько - паразитирущая. Если владелец сайта, почему то отдает информацию (или полную версию) только зарегистрированным, скорее всего это не просто так. Поэтому, логичнее не "дергать" втихоря, а пойти на путь переговоров. Вполне возможно, что из этого получится совместно развитие или новые возможности, идеи. Да и опыт общения с владельцами сайтов "доноров" лишним не будет.