Комментарии 39
Нужно пришлепнуть таракана, но тапка под руками нет. Зато я знаю как работает танк и вот он рядом стоит.
Откройте для себя python и lxml.html. Ну или что-то подобное
Откройте для себя python и lxml.html. Ну или что-то подобное
+5
вы неправы, некоторые сайты понапичканы разнообразным JS, что пока найдешь что куда отправлять уже перехочется писать. А здесь быстро и задачу решает.
+4
JS редко используется для основного наполнения сайта, если это не веб-приложение вроде gmail или prismatic. Сайты хотят чтоб их индексировали поисковики, а это значит, что и нам их будет не сложно разбирать.
+4
Ха-ха-ха.
Попробуйте попарсить авито или авто.ру без выполнения яваскрипта, узнаете много нового =)
Попробуйте попарсить авито или авто.ру без выполнения яваскрипта, узнаете много нового =)
+3
Я пошел смотреть, а Вы всё таки в двух словах тут расскажите, пожалуйста.
0
Яваскриптовые куки по которым отсекаются боты.
Если в двух словах.
Если в двух словах.
0
Это немного другой подход. Это вам не в тапки)
0
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
вы думаете по ноду нет свистелок типа «lxml.html»? ох-ох-ох-ох…
0
Хорошо бы чтобы разработчики подобных сайтов проявляли инициативу и за некоторую плату осуществляли самостоятельно рассылку новых объявлений. Это явно профит в обе стороны
+1
Был подписан на auto.yandex.ru/ как раз там и есть подписка на новые объявления по нужным критериям, правда не чаще двух раз в сутки, зато это агрегатор многих досок автообъявлений.
0
А за сколько по времени это решение написали?
0
Писал нечто подобное под irr.ru
Авматизация парсера сводилась к тому, что ты даешь ему ссылку на страницу с объявлениями, например irr.ru/real-estate/apartments-sale/search/rooms=2/currency=RUR/
В случае появления нового объявления (проверка через cron каждую минуту) — отправление СМС (через EmailToSMS) мне на телефон. Данные скрипт сохраняет в файл.
Итог: 1 скрипт на PHP + Cron на любом хостинге + Активация услуги EmailToSMS = PROFIT
P.S. Если кому интересно – могу поделиться PHP скриптом.
Авматизация парсера сводилась к тому, что ты даешь ему ссылку на страницу с объявлениями, например irr.ru/real-estate/apartments-sale/search/rooms=2/currency=RUR/
В случае появления нового объявления (проверка через cron каждую минуту) — отправление СМС (через EmailToSMS) мне на телефон. Данные скрипт сохраняет в файл.
Итог: 1 скрипт на PHP + Cron на любом хостинге + Активация услуги EmailToSMS = PROFIT
P.S. Если кому интересно – могу поделиться PHP скриптом.
+1
Осталось только Selenium на PhantomJS заменить и будет совсем круто :)
+2
Я на Phantom'e столкнулся с проблемой доступа к вновь отрытой вкладке. И помня это пересел на Selenium. Хотя тут можно и Phantom'ом ограничиться.
0
Вообще-то Selenium Webdriver поддерживает много разных браузеров, в том числе PhantomJS. То есть заменять ничего не надо, надо просто сказать Selenium, чтобы он в качестве браузера использовал PhantomJS.
0
Да, спасибо я в курсе. Но у меня возникали проблемы, где-то полгода назад. Поэтому думал не рисковать. Можете на гитхабе, изменить одну строчку, если по нраву PhantomJS
0
НЛО прилетело и опубликовало эту надпись здесь
Можно ссылку?
0
А вот неправда, PhantomJS Driver умеет делать скриншоты.
Вот пруфлинк, а вот пруфкод:
Скришот сохраняется. Правда, с google.com скриншот нормальный, а с selenide.org совсем кривой. Всё-таки PhantomJS ещё сыроват.
Вот пруфлинк, а вот пруфкод:
import static com.codeborne.selenide.Selenide.open;
import static com.codeborne.selenide.WebDriverRunner.closeWebDriver;
import static com.codeborne.selenide.WebDriverRunner.takeScreenShot;
public class TestPhantomScreenshot {
public static void main(String[] args) {
System.setProperty("browser", "phantomjs");
open("http://google.com");
takeScreenShot("phantomjs");
closeWebDriver();
}
}
Скришот сохраняется. Правда, с google.com скриншот нормальный, а с selenide.org совсем кривой. Всё-таки PhantomJS ещё сыроват.
0
НЛО прилетело и опубликовало эту надпись здесь
Как говорится, спасибо за повод.
Написал статью в блоге: ru.selenide.org/2013/07/15/can-phantomjs-take-screenshots/
Написал статью в блоге: ru.selenide.org/2013/07/15/can-phantomjs-take-screenshots/
0
Есть неплохой сервис от Яндекса — auto.yandex.ru. Индексирует не только irr.ru, но и avito.ru, drom.ru, am.ru и т.д (не сочтите за рекламу:) ), а так же есть подписка по нужным параметрам.
0
неправда ваша.
он не индексирует. он агрегирует фиды от партнеров, которыми как раз являются avito, drom и.т.д.
но auto.ru, например, отдает яндексу только регионы, москвы там нет. наверняка и остальные отдают с задержками, ведь тот же авито живет не только за счет рекламы, но и за счет продавцов, платящих за поднятие и т.д.
он не индексирует. он агрегирует фиды от партнеров, которыми как раз являются avito, drom и.т.д.
но auto.ru, например, отдает яндексу только регионы, москвы там нет. наверняка и остальные отдают с задержками, ведь тот же авито живет не только за счет рекламы, но и за счет продавцов, платящих за поднятие и т.д.
0
Грех будет не оставить здесь ссылку на Convextra. Она и данные сама выберет (не нужно писать какие-то свои XPATH просматривая верстку), и с периодичностью будет проверять новые объявления, и рассылку по ним организует и даже кукисы ваши автоматом подставит для сайта. Конечно, это не серебряная пуля, но 90% задач подобных этой она решает за 1 минуту (из которых 40 секунд уйдет на регистрацию :) )
+1
делал то же самое на JSoup + sqlite + просмотрщик на Adobe Air.
0
я тут подумал, и знаете, картинка очень в тему.
+1
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Человеческий парсер на Selenium WD