На чем писать паука?

Статус
В этой теме нельзя размещать новые ответы.

pastuhoff

Постоялец
Регистрация
11 Июл 2012
Сообщения
59
Реакции
8
Коллеги, на каком языке предпочтительнее (в плане производительности) писать многопоточный граббер контента с сайтов?
Как сильно будет влиять тип/версия ОС на производительность на одном и том-же железе?
 
какой объем информации планируется скачивать, как загружается канал?
Из готовых решений в интернет есть c++, java, php

По нагрузке предпочтительнее плюсы, из модных erlang
 
Благодарю.
Хочется для начала со своего десктопа (Phenom II X4 965, 4 ядра, 3.4ггц) с каналом в 30 мегабит/сек обойти все морды зоны ru (почти 5 млн доменов) за пару часов. Это реально?
 
Благодарю.
с каналом в 30 мегабит/сек обойти все морды зоны ru (почти 5 млн доменов) за пару часов.
С таким каналом нет, если только не обрывать соединение если ответ не получен. В этом списке есть и медленные и огромные страницы. Проверить ответ сервера можно попробовать, скачать не получится, да и места на диске без индекса столько нет
 
На первых порах устроит и такой вариант:
Если ответа нет - обрываем соединение через 5-30 сек.
Полностью страницы не нужно хранить. Просто проверить наличие подстроки и скинуть флаг в бд (вместе с кодом ответа сервера).
 
Можно попробовать для теста создать проект в любой программе скачивания, что найдется и проверить на 10 тыс сайтов, после можно сказать точнее.
 
Ну все-таки основной вопрос в том, на чем писать, чтобы было быстрее, а не "получится ли за пару часов обойти зону ru".
Канал можно расширить, компьютер заменить. Цель в том, чтобы выжимать максимум в задаче параллельного граббинга путем выбора языка.
 
Цель в том, чтобы выжимать максимум в задаче параллельного граббинга путем выбора языка.
Не вижу взаимосвязи, как сокеты или количество нитей, процессов зависит от языка? c++, perl, php, java, erlang и т.п. все поддерживают многопоточность сами или через библиотеки, libcurl например.

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

Если идет сразу разбор, то зависит уже от того что разбираем и для чего. Нужно определять кодировки, невалидную разметку, двойные теги и т.п.
 
То есть при правильной настройке apache+php+multicurl не будут уступать c# на той-же машине?
 
То есть при правильной настройке apache+php+multicurl не будут уступать c# на той-же машине?
Скорее всего нет, т.к. в этом деле основное время будет тратиться на ожидание и получение ответа от сервера, а ожидание на всех языках и технологиях абсолютно эквивалентно) Из технологий могу порекомендовать только то, с чем сам имел дело. С помощью Scrapy(легко гуглится) обходил 800к страниц за полчаса. Это при том, что у меня канал всего 10 Мб/с.

ps: отличный ник.. :ay:
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху