1. Задавайте здесь вопросы о коде, которые не подходят в другие разделы, такие как:
    Дизайн > Верстка
    PHP > Как сделать на PHP
    Скрыть объявление

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

Тема в разделе "Web Coding", создана пользователем pastuhoff, 15 сен 2014.

Статус темы:
Закрыта.
Модераторы: latteo
  1. pastuhoff

    pastuhoff Постоялец

    Регистр.:
    11 июл 2012
    Сообщения:
    52
    Симпатии:
    7
    Коллеги, на каком языке предпочтительнее (в плане производительности) писать многопоточный граббер контента с сайтов?
    Как сильно будет влиять тип/версия ОС на производительность на одном и том-же железе?
     
  2. RORC

    RORC

    Регистр.:
    14 июн 2013
    Сообщения:
    174
    Симпатии:
    41
    какой объем информации планируется скачивать, как загружается канал?
    Из готовых решений в интернет есть c++, java, php

    По нагрузке предпочтительнее плюсы, из модных erlang
     
    pastuhoff нравится это.
  3. pastuhoff

    pastuhoff Постоялец

    Регистр.:
    11 июл 2012
    Сообщения:
    52
    Симпатии:
    7
    Благодарю.
    Хочется для начала со своего десктопа (Phenom II X4 965, 4 ядра, 3.4ггц) с каналом в 30 мегабит/сек обойти все морды зоны ru (почти 5 млн доменов) за пару часов. Это реально?
     
  4. RORC

    RORC

    Регистр.:
    14 июн 2013
    Сообщения:
    174
    Симпатии:
    41
    С таким каналом нет, если только не обрывать соединение если ответ не получен. В этом списке есть и медленные и огромные страницы. Проверить ответ сервера можно попробовать, скачать не получится, да и места на диске без индекса столько нет
     
    pastuhoff нравится это.
  5. pastuhoff

    pastuhoff Постоялец

    Регистр.:
    11 июл 2012
    Сообщения:
    52
    Симпатии:
    7
    На первых порах устроит и такой вариант:
    Если ответа нет - обрываем соединение через 5-30 сек.
    Полностью страницы не нужно хранить. Просто проверить наличие подстроки и скинуть флаг в бд (вместе с кодом ответа сервера).
     
  6. RORC

    RORC

    Регистр.:
    14 июн 2013
    Сообщения:
    174
    Симпатии:
    41
    Можно попробовать для теста создать проект в любой программе скачивания, что найдется и проверить на 10 тыс сайтов, после можно сказать точнее.
     
    pastuhoff нравится это.
  7. pastuhoff

    pastuhoff Постоялец

    Регистр.:
    11 июл 2012
    Сообщения:
    52
    Симпатии:
    7
    Ну все-таки основной вопрос в том, на чем писать, чтобы было быстрее, а не "получится ли за пару часов обойти зону ru".
    Канал можно расширить, компьютер заменить. Цель в том, чтобы выжимать максимум в задаче параллельного граббинга путем выбора языка.
     
  8. RORC

    RORC

    Регистр.:
    14 июн 2013
    Сообщения:
    174
    Симпатии:
    41
    Не вижу взаимосвязи, как сокеты или количество нитей, процессов зависит от языка? c++, perl, php, java, erlang и т.п. все поддерживают многопоточность сами или через библиотеки, libcurl например.

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

    Если идет сразу разбор, то зависит уже от того что разбираем и для чего. Нужно определять кодировки, невалидную разметку, двойные теги и т.п.
     
    pastuhoff нравится это.
  9. pastuhoff

    pastuhoff Постоялец

    Регистр.:
    11 июл 2012
    Сообщения:
    52
    Симпатии:
    7
    То есть при правильной настройке apache+php+multicurl не будут уступать c# на той-же машине?
     
  10. gres_18

    gres_18 Pythonобандерівець®

    Регистр.:
    26 апр 2009
    Сообщения:
    407
    Симпатии:
    206
    Скорее всего нет, т.к. в этом деле основное время будет тратиться на ожидание и получение ответа от сервера, а ожидание на всех языках и технологиях абсолютно эквивалентно) Из технологий могу порекомендовать только то, с чем сам имел дело. С помощью Scrapy(легко гуглится) обходил 800к страниц за полчаса. Это при том, что у меня канал всего 10 Мб/с.

    ps: отличный ник.. :ay:
     
    Festem и pastuhoff нравится это.
Статус темы:
Закрыта.