Comments 39
Нужно пришлепнуть таракана, но тапка под руками нет. Зато я знаю как работает танк и вот он рядом стоит.
Откройте для себя python и lxml.html. Ну или что-то подобное
Откройте для себя python и lxml.html. Ну или что-то подобное
вы неправы, некоторые сайты понапичканы разнообразным JS, что пока найдешь что куда отправлять уже перехочется писать. А здесь быстро и задачу решает.
JS редко используется для основного наполнения сайта, если это не веб-приложение вроде gmail или prismatic. Сайты хотят чтоб их индексировали поисковики, а это значит, что и нам их будет не сложно разбирать.
Ха-ха-ха.
Попробуйте попарсить авито или авто.ру без выполнения яваскрипта, узнаете много нового =)
Попробуйте попарсить авито или авто.ру без выполнения яваскрипта, узнаете много нового =)
Я пошел смотреть, а Вы всё таки в двух словах тут расскажите, пожалуйста.
Яваскриптовые куки по которым отсекаются боты.
Если в двух словах.
Если в двух словах.
Это немного другой подход. Это вам не в тапки)
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
вы думаете по ноду нет свистелок типа «lxml.html»? ох-ох-ох-ох…
Хорошо бы чтобы разработчики подобных сайтов проявляли инициативу и за некоторую плату осуществляли самостоятельно рассылку новых объявлений. Это явно профит в обе стороны
Был подписан на auto.yandex.ru/ как раз там и есть подписка на новые объявления по нужным критериям, правда не чаще двух раз в сутки, зато это агрегатор многих досок автообъявлений.
А за сколько по времени это решение написали?
Писал нечто подобное под 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 скриптом.
Осталось только Selenium на PhantomJS заменить и будет совсем круто :)
Я на Phantom'e столкнулся с проблемой доступа к вновь отрытой вкладке. И помня это пересел на Selenium. Хотя тут можно и Phantom'ом ограничиться.
Вообще-то Selenium Webdriver поддерживает много разных браузеров, в том числе PhantomJS. То есть заменять ничего не надо, надо просто сказать Selenium, чтобы он в качестве браузера использовал PhantomJS.
Да, спасибо я в курсе. Но у меня возникали проблемы, где-то полгода назад. Поэтому думал не рисковать. Можете на гитхабе, изменить одну строчку, если по нраву PhantomJS
UFO just landed and posted this here
Можно ссылку?
А вот неправда, 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 ещё сыроват.
UFO just landed and posted this here
Как говорится, спасибо за повод.
Написал статью в блоге: ru.selenide.org/2013/07/15/can-phantomjs-take-screenshots/
Написал статью в блоге: ru.selenide.org/2013/07/15/can-phantomjs-take-screenshots/
Есть неплохой сервис от Яндекса — auto.yandex.ru. Индексирует не только irr.ru, но и avito.ru, drom.ru, am.ru и т.д (не сочтите за рекламу:) ), а так же есть подписка по нужным параметрам.
неправда ваша.
он не индексирует. он агрегирует фиды от партнеров, которыми как раз являются avito, drom и.т.д.
но auto.ru, например, отдает яндексу только регионы, москвы там нет. наверняка и остальные отдают с задержками, ведь тот же авито живет не только за счет рекламы, но и за счет продавцов, платящих за поднятие и т.д.
он не индексирует. он агрегирует фиды от партнеров, которыми как раз являются avito, drom и.т.д.
но auto.ru, например, отдает яндексу только регионы, москвы там нет. наверняка и остальные отдают с задержками, ведь тот же авито живет не только за счет рекламы, но и за счет продавцов, платящих за поднятие и т.д.
Грех будет не оставить здесь ссылку на Convextra. Она и данные сама выберет (не нужно писать какие-то свои XPATH просматривая верстку), и с периодичностью будет проверять новые объявления, и рассылку по ним организует и даже кукисы ваши автоматом подставит для сайта. Конечно, это не серебряная пуля, но 90% задач подобных этой она решает за 1 минуту (из которых 40 секунд уйдет на регистрацию :) )
делал то же самое на JSoup + sqlite + просмотрщик на Adobe Air.
я тут подумал, и знаете, картинка очень в тему.
Sign up to leave a comment.
Человеческий парсер на Selenium WD