На чём писать web-spider

yroslavasako

Есть желание периодически просматривая страницы некоторого сайта, поддерживать актуальную базу на основе данных, вытащенных с этого сайта. То есть нужно написать демон-спайдер, который будет лазить по этому сайту и составлять/обновлять базу. Сайт умеет работать без javascript. На чём это лучше всего писать?

Helga87

Мне нравится делать это с помощью новомодных cloud сервисов, вроде Windows Azure (не пользовался Google AppEngine (пользовался, нравится) и Amazon EC2 (сильно платный, поэтому для твоей задачи не подходит). Плюсы: сразу дается база, среда для выполнения твоего скрипта, собирающего данные, простой способ посмотреть на данные (через web).
Язык почти пофиг, но тот же python, вполне справляется с парсингом html. Парсить данные сайта можно как банальными регулярками, так и с помощью BeautifulSoup. Второй способ намного более приятный, поскольку фактически тебе надо указать xpath.

yroslavasako

мне нужно в локальную базу результаты складывать. Предложенный cloud софт это умеет?
Правильно ли я понимаю, что поскольку парсинг html - дело линейное (через приведение к xml DOM и xpath запросы то упираться в c++ чтобы получить выигрыш по времени бессмысленно (сеть работает медленнее) и можно обойтись явой? Или ява - это тоже излишне быстро и достаточно питона?

katrin2201

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

klyv

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

Werdna

Есть желание периодически просматривая страницы некоторого сайта, поддерживать актуальную базу на основе данных, вытащенных с этого сайта. То есть нужно написать демон-спайдер, который будет лазить по этому сайту и составлять/обновлять базу. Сайт умеет работать без javascript. На чём это лучше всего писать?
тебе нужен curl.

love_4ever

php + curl (в пхп библиотека курл есть)
Если в базе 50000 записей, и надо проверять - новая это запись или старая, то такая проверка сравнима по времени со скачкой через cURL.
Если не проверять - то самое долгое - cURL.
Я слышал, что кУРЛ может многопоточно - я не пробовал.
кУРЛ порядка 1 страницу в секунду скачивает (без картинок).

ermsoft

Если в базе 50000 записей, и надо проверять - новая это запись или старая, то такая проверка сравнима по времени со скачкой через cURL.
Если не проверять - то самое долгое - cURL.
Я слышал, что кУРЛ может многопоточно - я не пробовал.
кУРЛ порядка 1 страницу в секунду скачивает (без картинок).
Ааа, какой феерический бред.

Alexander08

написал один раз подобный проект на .NET. там есть все необходимые библиотеки(построение запросов, разбор с помощью регексп). хотя я пользовался штукой предложенной Красиным. он подкинул библиотеку которая нормализует html в xml, а дальше можно рекурсивно разбирать нужный xml-файл... мне помогло.

yroslavasako

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

klyv

тебе нужен не просто xpath, а xpath по html. можешь столкнуться с неприятными моментами в случае недопонимания.

Alexander08

верно говоришь
Оставить комментарий
Имя или ник:
Комментарий: