Pull to refresh

Comments 39

Нужно пришлепнуть таракана, но тапка под руками нет. Зато я знаю как работает танк и вот он рядом стоит.

Откройте для себя python и lxml.html. Ну или что-то подобное
вы неправы, некоторые сайты понапичканы разнообразным JS, что пока найдешь что куда отправлять уже перехочется писать. А здесь быстро и задачу решает.
JS редко используется для основного наполнения сайта, если это не веб-приложение вроде gmail или prismatic. Сайты хотят чтоб их индексировали поисковики, а это значит, что и нам их будет не сложно разбирать.
Ха-ха-ха.
Попробуйте попарсить авито или авто.ру без выполнения яваскрипта, узнаете много нового =)
Я пошел смотреть, а Вы всё таки в двух словах тут расскажите, пожалуйста.
Яваскриптовые куки по которым отсекаются боты.
Если в двух словах.
То есть с выключенным JS их сайт вообще не работает?
Все несколько сложнее, но если коротко — то да.
А вы парсили их? Если не секрет, то пользовались подобным описанному автором поста способом или выполняли JS, дабы сойти за обычного пользователя?
Описанный автором способ выполняет ЖС — поэтому работает очень хорошо.
Есть разные варианты добиться схожего варианта: phantomJS, или что совсем круто вебкит + C++ =)
Так PhantomJS и так использует WebKit.
Это немного другой подход. Это вам не в тапки)
UFO just landed and posted this here
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 скриптом.
Осталось только Selenium на PhantomJS заменить и будет совсем круто :)
Я на Phantom'e столкнулся с проблемой доступа к вновь отрытой вкладке. И помня это пересел на Selenium. Хотя тут можно и Phantom'ом ограничиться.
Вообще-то Selenium Webdriver поддерживает много разных браузеров, в том числе PhantomJS. То есть заменять ничего не надо, надо просто сказать Selenium, чтобы он в качестве браузера использовал PhantomJS.
Да, спасибо я в курсе. Но у меня возникали проблемы, где-то полгода назад. Поэтому думал не рисковать. Можете на гитхабе, изменить одну строчку, если по нраву PhantomJS
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
А вот неправда, PhantomJS Driver умеет делать скриншоты.
Вот пруфлинк, а вот пруфкод:

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
Ну а лучше пойти дальше и использовать CasperJS. Особенно если необходимо несколько страниц и форма.
Есть неплохой сервис от Яндекса — auto.yandex.ru. Индексирует не только irr.ru, но и avito.ru, drom.ru, am.ru и т.д (не сочтите за рекламу:) ), а так же есть подписка по нужным параметрам.
неправда ваша.
он не индексирует. он агрегирует фиды от партнеров, которыми как раз являются avito, drom и.т.д.
но auto.ru, например, отдает яндексу только регионы, москвы там нет. наверняка и остальные отдают с задержками, ведь тот же авито живет не только за счет рекламы, но и за счет продавцов, платящих за поднятие и т.д.
Грех будет не оставить здесь ссылку на Convextra. Она и данные сама выберет (не нужно писать какие-то свои XPATH просматривая верстку), и с периодичностью будет проверять новые объявления, и рассылку по ним организует и даже кукисы ваши автоматом подставит для сайта. Конечно, это не серебряная пуля, но 90% задач подобных этой она решает за 1 минуту (из которых 40 секунд уйдет на регистрацию :) )
я тут подумал, и знаете, картинка очень в тему.
Sign up to leave a comment.

Articles