Сайтостроение Как парсить сайты

Статус
В этой теме нельзя размещать новые ответы.
Автор: Роман Кротов
Год выхода: 2015

О видеокурсе: В этом видеокурсе Вы в мельчайших подробностях, по шагам научитесь парсить любые сайты и зарабатывать на этом деньги. Этот курс рассчитан на тех, кто уже владеет основами программирования на PHP и хочет повысить свою квалификацию и заработать на продаже дополнительных услуг по парсингу сайтов.Курс начинается с теоретических основ и уже после них мы работаем над реальным заказом, по шагам и на примерах. Показывается как спарсить данные с сайта и сохранить их в нужном для заказчика формате. Каждое действие сопровождается подробными и понятными для каждого комментариями. Более того, к каждому практическому уроку есть исходники.В результате работы вместе с автором в конце курса Вы получаете готовый парсер игрового сайта. Все техники и методики, которые показываются в курсе, так же применимы и к любому другому сайту.

Продажник:


Скачать:
 

Последнее редактирование модератором:
В принципе неплохая пачка зниний, но не все сайты получится спарсить, там где контент генерируется и правится при помощи JavaScript - PHP, Curl и прочие библиотечки для парсинга могут не справиться.
Для парсинга динамичных страниц нужен эмулятор браузера (XHE, ZennoPoster...) или же система тестирования приложений на основе Firefox, PhantomJS и Selenium - вот там уже можно спарсить мох и болото, да и не только спарсить!
 

Для парсинга динамичных страниц нужен эмулятор браузера (XHE, ZennoPoster...) или же система тестирования приложений на основе Firefox, PhantomJS и Selenium - вот там уже можно спарсить мох и болото, да и не только спарсить!
Какое из этих решений можно встраивать в свои приложения или использовать в каком-то скриптовом языке вроде VB Script как COM-объект?
 

Рекламное сообщение
⚠️ Pirate VPN Service - Быстрый, безопасный и надежный VPN от команды PirateHUB

Работайте безопасно. Обходите любые блокировки. Защитите свои данные.

➡️ Подробнее
 

В принципе неплохая пачка зниний, но не все сайты получится спарсить, там где контент генерируется и правится при помощи JavaScript - PHP, Curl и прочие библиотечки для парсинга могут не справиться.
Для парсинга динамичных страниц нужен эмулятор браузера (XHE, ZennoPoster...) или же система тестирования приложений на основе Firefox, PhantomJS и Selenium - вот там уже можно спарсить мох и болото, да и не только спарсить!
Пример такого сайта можешь привести. Хочу попробовать. Пока удавалось спарить любую инфу.
 

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

Почему CURL не может спарсить многие современные сайты? - потому что он не умеет JavaScript. Сейчас много сервисов, к примеру тот же VK построены на асинхронных запросах без перегрузки странички, контент подгружается в DOM дерево (структура документа после обработки скриптами, если простыми словами) при помощи AJAX и подобных технологий.
Чтобы понять что и как - попробуйте при помощи CURL спарсить последние 200 сообщений со стены любой группы ВКонтакте. Попробуйте получить HTML исходник какого-то сайта к которому подключена защита от DDOS при помощи CloudFlare или другого сервиса, который требует включенного JavaScript.
Примеров еще можно привести много, сейчас любой парсинг без движка JS - это не парсинг.
Простой живой пример: попробуйте получить список свободных прокси без включенного JS (для FireFox можно установить дополнение NoScript) или при помощи CURL, PHP file_get_contents... вот с этой странички http://www.freeproxylists.com/anon/1463748668.html
Вы получите почти пустой HTML исходник, а теперь включите JS и...о магия!!! на страничке появился список сотни свободных проксей (IP - порт).

Таким образом, если на сайте контент (картинки, текст, ссылки...) подгружаются при помощи JavaScript то простой запрос исходника HTML документа без пост-обработки при помощи JS не вернет вам нужного результата.

Теперь о софте.

1) XHE - он же Xedant Human Emulator, xWeb, умеет эмулировать любые действия в браузере IE, есть многопоточность, возможность писать скрипты автоматизации на PHP (есть готовые классы с функциями под клаву, мышь, картинки, капчи, системные утилиты и т.п.).
Это по сути Windows-приложение обгортка для ослика ИЕ (Internet Explorer) с простым и функциональным API, под который написаны готовые вспомогательные PHP-скрипты-классы.
Как это работает: Приложение-обертка IE открывает на машине порт (например 7010 или другой) и принимает к нему подключения. Все что нужно для управления браузером - подключиться к порту, например телнетом и отправить ему команду в виде строки с параметрами. К примеру для клика мышкой в браузере с координатами 504,937 нужно отправить строчку "Mouse.Click?x=504&y=937"
Согласитесь, не очень удобно. Поэтому для упрощения управления разработчиками этой программы была написана целая пачка скриптов (классы), которые запускаются на локальном интерпретаторе PHP и по своей сути подключаются к порту 7010 и посылают туда команды. Таким образом для того же клика мышкой в браузере с координатами 504,937 нужно вызвать в PHP скрипте метод $mouse->click(100, 200); - так явно проще и понятнее.
Итак что мы имеем: браузер с возможностью полной автоматизации, скрипты можно писать на любом языке, подключаясь по TCP к порту 7010 и отправляя туда команды. Скрипты можно писать используя готовые классы функций и методов на PHP, полистать классы можно на humanemulator.net.
С этой программой я работал достаточно плотно и даже когда-то писал целую систему с веб-мордой на PHP+AJAX+MYSQL, регались аккаунты, почты, постились сообщения в ВК, собирались прокси, ADDURиLки....потом забросил.
Для себя выделил два основных минуса - это цена на лицензию и ее продление, а также отсутствие возможности нормального масштабирования. Программа-эмулятор работает только на Windows и для запуска на одной машине нужна одна лицензия (порядка 300$ по тому времени), более предпочтительно иметь подобный инструмент на Linux, где можно будет запускать своих роботов-трудяг на множестве VPSок, да и производительность будет получше, все таки не нужно подгружать в память разный хлам, который идет в комплекте с Windows.

2) ZennoPoster - очень мощный продукт, авторы сделали гениальный комбайн, который после небольшого обучения сможет оседлать даже домохозяйка (оседлать...но не кататься по полной). По сути это также интернет-браузер с целым комплексом надстроек для автоматизации, парсинга, постинга, ботинга, кликинга, граббинга и т.п. занятий.
Огромный плюс данного софта - то что все собрано в куче и в одном месте, это такой себе центр управления и рекрутинга для виртуальных цифровых работников в сфере интернета, которые не ленятся, не ноют, не требуют повышения зарплаты (хотя случается...апгрейд компа иногда не помешает) и делают то что им прописано (в скриптах).
Продукт хороший но избыточный если нужно сделать какое-то простое задание на автомате, к тому же своей наработкой (скриптом) вы не сможете поделиться с другими если у них нет лицензии Зенки, демо-версия очень урезана.
Для тех кто умеет программировать, скорее всего что ковыряние в интерфейсе покажется не очень приятным занятием, захочется написать простой скрипт на каком-то языке вместо часового клацанья по текстовых поляv и чекбоксам. Хотя...в Зенке предусмотрен API и можно подключить свои скрипты, написанные на удобном языке, работать по подобному принципу взаимодействия как и с XHE.
Для себя выделил такие минусы:
Первый минус - платный продукт (хотя за такие возможности отдать денежку не жалко), полностью закрытый проприетарный код (параноикам и безопасникам такое не подойдет), мало ли что хитрые разработчики могли в нем упрятать, хочется доверять но все же проверять...а проверить не получится (как вариант сидеть на шухере в команде с WireShark и TCPDump).
Второй минус - опять же привязанность к MS Windows, аренад VPS с данной ОС это не дешевое удовольствие и снова у нас будут в пустую тратиться драгоценные ресурсы системы на запуск всякого встроенного в продукт MS мусора, загрузку разных обновлений, которые для моей задачи н#х не нужны.
Здесь же мы опять столкнемся с проблемой масштабирования и гибкости, будем привязаны как лошадь к дереву в ожидании хозяина.

3) Firefox, PhantomJS и Selenium - не зря я привел эту связку как альтернативу выше приведенным проприетарным пациентам. Для использования данных инструментов и библиотек нужно иметь навыки программирования или же просто желание - остальное подтянется в процессе.
Selenium - это система для написания автоматических тестов приложений, но никто нам не мешает применить ее для автоматизации разной рутины в браузере где нужен JavaScript. К Селениуму можно привязать разные браузеры (драйверы), к примеру тот же Firefox или Хром, а можно прикрутить PhantomJS.
PhantomJS - Headless WebKit scriptable with a JavaScript API. Безглавый (не нужен графический интерфейс) движок браузера на основе WebKit с поддержкой JavaScript и со своим API. Используя данную штукенцию в связке с Selenium мы сможем написать скрипт автоматизации какой-то работы в инете, выгрузить такой скрипт на Linux VPS где есть только консоль (без графического рабочего стола) и запустить на выполнение.
На лицо экономия ресурсов, денег.
Все приведенные продукты с открытым исходным кодом и свободными лицензиями, их код можно подправить под себя, поделиться своими наработками или найденными багами с сообществом разработчиков по всему миру, к тому же знания данных технологий и навыки работы с ними могут пригодиться при устройстве на высокооплачиваемую работу.
Если хотите попробовать данные технологии то наиболее простой и дружелюбный язык вам в помощь, это - Python (Питончик). По селениуму есть неплохие статьи на Хабре, также подружитесь с StackOverflow, GitHub - там есть много примеров и решений разных задач.

Какой продукт лучше: XHE, ZennoPoster, Selenium+друзья? - пусть каждый выберет для себя из своих возможностей и перспектив, подумает хочет ли он иметь полный контроль или же пользоваться готовыми наработками за некоторую плату и привязанность. Для каждого из продуктов найдется свой поклонник и противник.

Я не являюсь большим гуру, так что за какие-то неточности или незнания в изложенных выше примерах прошу сильно не ругать, я также как и многие только учусь )
Буду рад если эта мини-статья принесет кому-то пользу, откроет новые возможности и побудит к новым идеям (хорошим и во благо).
 

Для парсинга сайтов без навыков программирования уже создано множество программ, одна из таких - Datacol5, как написал Rev0lver.
Когда-то купил лицензию на такую программу как Content Downloader - также все довольно просто и без применения языков программирования, есть мануалы и обучающие видео на Ютубе.
Тем не менее, даже при использовании таких чудо-программ нужны некоторые знания о структуре документов в Вебе, а также протейшие навыки алгоритмизации для того чтобы получить нужный, выжатый контент без мусора и в краткие сроки.
Свой практический опыт - лучший учитель.
 

Проще простого использовать Datacol5 парсит почти все есть готовые шаблоны.
В обзоре описаны средства которые можно встраивать в другие приложения и скрипты, в то время как Datacol работает только на Windows и предоставляет ограниченные средства автоматизации работы с программой, только обмен (запись информации в базу данных) или экспорт в файлы Эксель/csv.
 

Поведайте каким образом.

Python - язык программирования. Если ты им владеешь, то есть очень много библиотек для парсинга и можно сделать всё, что угодно.
 

Python - язык программирования. Если ты им владеешь, то есть очень много библиотек для парсинга и можно сделать всё, что угодно.
Я вкурсе что такое Python,у вас поинтересовались каким образом.Конкретики добавьте а не общие фразы что есть и тому подобное.
 

Для того чтобы парсить 99 процентов сайтов не обязательно изучать программирование, достаточно готового софта. Zenno слишком тяжелый и медленный. Раньше использовал только для задач, где нужна обработка DOM и некоторые дополнительные вещи. Но цена явно неадекватна, можно в 10 раз дешевле получить тот же результат. Сейчас не использую. В общем нормального софта довольно много, в том числе и ломаного, но за опенсорсом будущее.
 

Статус
В этой теме нельзя размещать новые ответы.

Обратите внимание

Похожие темы

Назад
Сверху