ТОП-9 сервисов проверки позиций сайта в поисковиках 2019 года!
Сервисы проверки позиций и анализа сайта в поисковиках
Как я оценивал сервисы?
Я подготовил обзор сервисов проверки позиций, которые помогут анализировать динамику продвижения сайта по запросам, а так же давать рекомендации по улучшению.
Задача данного поста помочь выбрать систему, с которой вы будете долго работать, поэтому сервисы я решил оценивать по 5-ти бальной системе.
1 – ужасно
2 – плохо
3 – пойдет
4 – хорошо
5 – отлично
5+ — выше всех похвал
Функционал – от 1 до 5+, что делает сервис помимо проверки позиций
Интерфейс – от 1 до 5+, на сколько понятна навигация внутри системы
Дизайн – от 1 до 5+, не режет ли глаз оформление интерфейса
Цены – от 1 до 5+, не кусаются ли цены и есть ли бесплатные проверки
Особенности
SeRanking.com – в своей работе, мы используем именно этот сервис!
Адрес сайта: seranking.com
Мои оценки:
- Функционал – 5+
- Интерфейс – 5
- Дизайн – 5
- Цены – 5+
Особенности:
- Группировка запросов по страницам
- Детальный технический аудит
- Текстовый анализ каждой страницы
- Подбор запросов и кластеризация
- Чек-лист по продвижению
- Свой домен для агентств
- Использование XML-лимитов
- Конструктор отчетов
- Автопостинг в соц сетях
- 2 формата оплаты
Из всех сервисов анализа сайта и мониторинга позиций SeRanking, нам понравился больше всего! Если вы планируете работать с клиентами, то однозначно начинайте работу с ним.
Для этого ЗАРЕГИСТРИРУЙТЕСЬ и добавьте свой проект на анализ
TopVisor – мощный инструмент для поискового маркетинга
Адрес сайта: topvisor.ru
Мои оценки:
- Функционал – 5
- Интерфейс – 5+
- Дизайн – 5+
- Цены – 4
Особенности:
- Сравнение позиций сайтов в выдаче по апдейтам
- Бид-менежер для Яндекс Директ
- Красивый апометр
- Детальный технический аудит
- Постраничный текстовый анализ
- Мобильное приложение
- Работа с юридическими лицами
Если вы не планируете работу с клиентами, то ТопВизор – это отличное решение для продвижение своих сайтов.
РЕГИСТРИРУЙТЕСЬ в сервисе и вперед к ТОПу!
Labrika – самый понятный интерфейс для мониторинга сайта
Адрес сайта: labrika.ru
Мои оценки:
- Функционал – 5+
- Интерфейс – 5+
- Дизайн – 4
- Цены – 5
Особенности:
Мне очень понравился этот сервис тем, что для каждого продвигаемого сайта сделаны вкладки по разным направлениям факторов ранжирования. Похожую идею мы планировали сделать для себя, но ее реализовали разработчики Labrika!
Сервис сделан принципиально по-другому, поэтому РЕГИСТИРУЙТЕСЬ и обязательно проверьте свой сайт хоть один раз в этой системе!
Rush-Analitics – простая система для работы с запросами и текстом
Адрес сайта: rush-analitics.ru
Мои оценки:
- Функционал – 4
- Интерфейс – 4
- Дизайн – 4
- Цены – 4
Особенности:
- Парсинг WordStat и подсказок
- Класстеризация запросов
- Текстовый анализатор
- Видимость по группам
Сервис не отличается выдающимся функционалом, но вполне подойдет для автоматизации работы семантика и продвижения контент-проекта. Определение видимости по группам поможет грамотно анализировать динамику позиций конкретных статей.
РЕГИСТРАЦИЯ в этом сервисе.
AllPositions – простое решение для начинающих
Адрес сайта: allpositions.ru
Мои оценки:
- Функционал – 2
- Интерфейс – 5
- Дизайн – 3
- Цены – 4
Особенности:
- Бесплатные проверки и обмен XML-лимитов
С этого сервиса я начинал продвижение первых клиентов. Система достаточно простая, имеет базовый функционал проверки позиций, тут все понятно и этот проект идеально подойдет для тех, кто хочет 2-3 раза в месяц анализировать 30-100 запросов и не заморачиваться над сложной функциональностью, которую не будет использовать.
РЕГИСТРИРУЙТЕСЬ, добавляйте запросы и включите их мониторинг.
SerpSeeker – слабый функционал и забытое решение
Адрес сайта: serpseeker.com
Мои оценки:
- Функционал – 3
- Интерфейс – 3
- Дизайн – 3
- Цены – 2
Особенности:
Сделали и забыли. Видимо проект делали под себя и когда-то давно, так как в отличии от конкурентов, его не развивают.
Если хотите изучить подробнее, то вот ссылка на РЕГИСТРАЦИЮ
Пиксель Тулс – клондайк для экспертов
Адрес сайта: tools.pixelplus.ru
Мои оценки:
- Функционал – 5+
- Интерфейс – 4
- Дизайн – 4
- Цены – 3
Особенности:
Сервис от компании ПиксельПлюс действительно впечатляет, но это разработка не для всех. Богатый функционал и высокая стоимость на него подойдет для специалиста, работающего с крупным проектом или же агентства. Для небольших компаний сервис слишком нагружен функционалом, которым не будут пользоваться.
Отдельно отмечу – модуль ведения проекта, который заменит вам любой такс-менеджер
РЕГИСТРИРУЙТЕСЬ в сервисе и решите все задачи в одном окне.
SEO Plan – простой сервис и функционал
Адрес сайта: seoplan.ru
Мои оценки:
- Функционал – 3
- Интерфейс – 4
- Дизайн – 4
- Цены – 4
Особенности:
По-аналогии с AllPositions, этот проект имеет базовый функционал анализа позиций, который решит для начинающего вебмастера задачу мониторинга сайта.
РЕГИСТРАЦИЯ в сервисе
Line.PR-CY.ru – сервис от популярного сайта аудитов
Адрес сайта: line.pr-cy.ru
Мои оценки:
- Функционал – 2
- Интерфейс – 4
- Дизайн – 3
- Цены – 4
Особенности:
Совсем простой сервис, который связан с бесплатным анализом сайтов. Если вы только начинаете следить за своим проектом, то можете попробовать этот, но думаю вам быстро захочется большего…
НАШ РЕЙТИНГ
Золото – SeRanking
Этот проект удовлетворит все категории клиентов. Мы остановились на нем!
Серебро – Labrika
Принципиально другой подход к продвижению и он мне нравится!
Бронза – TopVisor
Отличный сервис, который улучшается и подойдет для продвижения своих проектов
предыдущие записи
-
Яндекс ИКС — что это и как его проверить?
23:28 31/08/201831 августа в 21:00 Яндекс сменил в ПС Яндекс Вебмастере показетель ТИЦ на ИКС. И там же стала доступна проверка Яндекс ИКС у любого сайта.
-
Продвижение магазина майнинг ферм HotAsic.ru
18:34 31/08/2018Майнинг популярное направление интернет-заработка и инвестиций. Мы взяли в работу интернет-магазин и делимся результатами первого месяца работ.
-
Как поставить чат JivoSite в выдаче Яндекса
14:06 31/08/2018Интеграция с Яндекс.Диалогами позволяет общаться с клиентами даже до того, как они зайдут на сайт — кнопка “Начать чат” отображается прямо под ссылкой на сайт в поисковой выдаче.
-
ТОП-8 Онлайн-чатов для сайта
13:10 28/08/2018Мы подготовили список онлайн-чатов для сайта. Выбрав один из них, вы повысите отдачу от своего проекта в виде дополнительных заявок от клиентов.
pgdv.ru
Как узнать на каких позициях сайт в поисковиках Яндекс и Google
Многие владельцы сайтов хотят узнать, по каким запросам находятся в ТОП-10 сайты их конкурентов. Также нужно не забывать анализировать по каким позициям продвигается собственный сайт и по каким ключевым запросам.
Это необходимо для того, чтобы оценить, как реагируют поисковики на внесенные изменения на сайте: растут или падают позиции, меняются ли релевантные страницы. Таким образом, можно будет сказать, есть ли эффект от проведенных работ или нет.
Мы решили собрать платные и бесплатные инструменты для проверки позиции сайта и анализа ключевых слов собственного сайта и сайта конкурентов, и представить их в обзоре.
1. PR-CY.ru
Сайт сервиса: PR-CY.ru
В сервисе можно сделать бесплатный анализ сайта, в том числе – проектов конкурентов. Среди различных показателей сервис выводит информацию, по каким запросам находится проверяемый сайт в Яндексе и Google. Правда, показывает только 100 запросов для каждой поисковой системы. Но для бесплатного сервиса это неплохо.
Ниже можно посмотреть пример отчета:
Чтобы посмотреть запросы конкурента, введите адрес его сайта на главной странице сервиса pr-cy.ru и нажмите кнопку «Анализировать». Откроется страница с результатами анализа, на которой будут данные, по каким запросам продвигается сайт конкурента и на каких позициях он находится.
Плюсы сервиса:
- Позволяет посмотреть, по каким запросам продвигается сайт конкурента.
- Помимо списка ключевых фраз, выводит их частоту и позицию сайта. Вы можете оценить, по каким запросам сайт конкурента находится в ТОП-10.
- Для анализа 1-2 сайтов не требуется регистрация. Достаточно ввести адрес сайта на странице pr-cy.ru и нажать кнопку «Анализировать».
Минусы сервиса:
- Можно посмотреть только 100 запросов в каждой поисковой системе.
- При анализе большого числа сайтов сервис потребует зарегистрироваться.
2. Serpstat.com
Сайт сервиса: Serpstat.com
Чтобы посмотреть запросы конкурента, введите адрес его сайта на главной странице сервиса serpstat.com, выберите поисковую систему Google или Яндекс и нажмите кнопку «Поиск». Откроется страница с результатами анализа, на которой будут данные, по каким запросам продвигается сайт конкурента и на каких позициях он находится.
Пользователям платформы доступен функционал для определения и подробного анализа конкурентов, расширения семантики собственных сайтов, поиска и экспорта ключевых слов, автоматического формирования отчетов и другие полезные опции.
3. Semrush.com
Сайт сервиса: semrush.com
Чтобы посмотреть запросы конкурента, введите адрес его сайта на главной странице сервиса semrush.com, выберите страну по которой собираетесь анализировать ключевые слова и нажмите кнопку «Начать». Откроется страница с результатами анализа, на которой будут данные, по каким запросам продвигается сайт конкурента и на каких позициях он находится.
SEMrush – это сервис актуального мегаанализа в интернете, который востребован во многих странах мира. Он ориентирован на крупные поисковые системы Google, Bing и предоставляет только уникальные данные для мониторинга.
Информационный инструментарий популярного международного сервиса очень широк. Есть как платные, так и бесплатные модули аудита и анализа. В частности это:
– большой объем SERP-данных для сотни миллионов ключевиков и десятков миллионов доменов;
– возможность тщательного анализа рекламных кампаний конкурентов, в том числе и потраченного бюджета;
– подбор разноуровневых ключевых запросов, анализ каждого из них;
– анализ поискового трафика, в том числе и финансовый;
– построение SEO-метрик по выбранным полезным параметрам;
– сравнение нескольких доменов по определенным категориям и многое другое.
4. X-tool.ru
Сайт сервиса: xtool.ru
Бесплатный сервис, позволяющий узнать, по каким запросам продвигается сайт конкурента. Помимо данных о позициях, выводит информацию о целевых страницах, их заголовки и сниппеты в поисковых системах.
Пример отчета из сервиса:
Чтобы посмотреть запросы, по которым выводится сайт в поисковых системах, необходимо на сайте Xtool.ru добавить URL сайта в специальную форму и нажать кнопку «Проверить»:
В полученном отчете необходимо перейти на вкладку «Видимость в Яндексе» или «Видимость в Google» для просмотра запросов в соответствующей поисковой системе.
Плюсы сервиса:
- Помимо списка запросов и позиций сайта по ним, выводит дополнительную информацию: страница, которая выводится по запросу, прогноз по трафику, Title страницы, сниппет.
- Позволяет выгрузить информацию в Excel после регистрации.
- Данные в таблице можно сортировать, нажимая на заголовки столбцов.
Минусы сервиса:
- Без регистрации можно посмотреть только 100 запросов для каждой поисковой системы. Для просмотра большего объема данных требуется регистрация.
- Показывает данные не для всех сайтов.
5. Промо пульт
Сайт сервиса: promopult.ru
Это система автоматического продвижения сайтов. После регистрации вы можете создать в ней проект. В процессе создания система выводит текущие позиции сайта в Яндексе и Google. Таким образом, используя Сеопульт, можно посмотреть, по каким запросам продвигается сайт конкурентов. При этом заказывать само продвижение сайта не нужно.
Плюсы сервиса:
- Показывает много запросов.
- Показывает прогноз по числу переходов по запросам и позиции по ним.
- Позволяет сортировать запросы в таблице по разным параметрам. Например, можно посмотреть самые популярные запросы, по которым конкурент находится в поисковых системах.
Минусы сервиса:
- Нельзя выгрузить данные.
- Требуется регистрация для просмотра данных.
6. Топвизор
Сайт сервиса: https://topvisor.com
При регистрации нового пользователя Топвизор предоставляет возможность бесплатного анализа 200 запросов. Проверка позиций сайта возможна по таким поисковым системам, как Яндекс, Bing, Google, Seznam, go.Mail.ru, Yahoo, Спутник, а также по сайту YouTube.
Для начала работы необходимо зарегистрироваться на сайте ТопВизор и нажать «Мои проекты».
7. Allpositions
Сайт сервиса: https://allpositions.ru/
Тысячи специалистов по раскрутке проектов в Интернете уже давно ощутили выгоду автоматизированного процесса анализа текущих позиций сайтов в различных поисковых системах.
С помощью сервиса «AllPositions» Вы сможете:
- Полноценно контролировать позиции сайтов в выдаче поисковых систем – для этого достаточно только ввести нужные ключевые слова и программный комплекс сразу предоставит Вам всю развёрнутую информацию.
- Анализировать информацию о текущих позициях конкурирующих проектов – Вы будете иметь на руках всю необходимую информацию, которая позволит Вам получить весомое конкурентное преимущество.
- Получать отчёты в удобном формате, которые максимально подробно отобразят все запрашиваемые Вами данные.
Вы получите персональный кабинет, в котором можете проводить нужные исследования. Весь функционал очень удобен в использовании.
Заключение
В целом, можно сказать, что у многих сервисов проверки позиций, помимо основной функции, также есть и множество других не менее полезных фишек. В наименее выигрышной позиции в этом плане сервис AllPositions, главная специализация которого – проверка позиций сайта. Но и он может стать вашим хорошим помощником благодаря анализу конкурентов и просмотру статистики сайта. Нельзя сказать, что это существенный недостаток, но иногда хочется более полного функционала и разнообразия функций.
В настоящее время в интернете множество сервисов по проверке позиций сайта. Все они предлагают разнообразный спектр возможностей, но к какому сайту обратиться – решать только вам. Каждый выберет для себя сервис согласно своим нуждам, вкусам и предпочтениям.
netsoveta.ru
10 Сервисов для мониторинга позиций в поисковых системах
Отслеживание позиций несомненно является ключевым фактором анализа в SEO. Так как позволяет наблюдать динамику (положительную/отрицательную) развития проекта, контролировать видимость сайта в поисковой системе и быстро реагировать на любые изменения в поведении проекта.
Видимость — процентный показатель соотношения запросов, частотности и позиций. Грубо говорят, насколько ваш проект является обозримым и доступным для пользователей, задающих вопросы в органическом поиске Google или Яндекс.
Кратко о том, как происходит съём позиций и что для этого нужно
Снятие позиций из поисковой выдачи — это вариант анализа видимости сайта. Суть в том, чтобы посчитать, на каком месте ваш сайт при том или ином поисковом запросе. В современных поисковых системах, а точнее при учете новых технологий и алгоритмов поисковых систем. Важно, что в расчет берется не только ключевое слово, но и регион запроса.
Поисковые алгоритмы стремятся показывать наиболее релевантные ссылки.
Так, например, если человек вводит в поиск фразу «купить печь», то вероятность разного показа для разных регионов будет велика. Иными словами, по этому ключевому слову пользователь увидит разные результаты, если задаст его в Москве или, например, в Питере.
Важно понимать, что в зависимости от региона меняется и выдача, с годами выдача становится все более локальной.
Для съёма позиций необходима семантика (все ключевые слова + частотность), целевые URL (какой странице соотноситься URL) и желательно разбивка по группам — кластеризация. И это будет правильный набор необходимых требований, но в то же время не обязательный. Вам вполне достаточно собрать релевантное семантическое ядро для начала мониторинга позиций сайта.
Некоторые сервисы сами определяют, какую страницу подвязывать под запрос. Тут имеют место понятия целевого и релевантного URL: целевой — тот, который вы назначили, который является целью, релевантный — тот, который идет первым в выдаче. Другими словами (и я бы рекомендовал) следующее:
- Для действующих сайтов — мониторинг позиций на первом этапе лучше осуществлять только по семантическому ядру, это покажет вам, какие url вообще ранжируются. Что позволит составить четкий чек лист для оптимизации страниц сайта и в будущем поменять ранжируемые страницы.
- Для новых сайтов — лучше собрать семантику, провести кластеризацию и оптимизировать релевантные страницы так, как это нужно вам, а не так, как этого хочет поисковый робот.
В общем суть вы уловили, я надеюсь. Переходим к сервисам, которые мы (с Ihor Vadimovich) проанализировали за последние несколько месяцев.
TOPVISOR
Поисковые системы: Яндекс, Google, Mail, Bing, Yahoo
Особенности: 0.03$ за ключевое слово, нет ограничений по регионам. Есть возможность предоставления гостевого доступа или отправки отчетов на E-Mail.
Бесплатно | 1 проверка | Глубина скана | Наличие API | Формат отчетов |
---|---|---|---|---|
Да | 0.03$ | 1000 | Да | CSV, HTML |
Поисковые системы: Яндекс, Google
Особенности: не тривиальный мониторинг позиций, но есть ограничения по поисковым системам . Есть возможность предоставления гостевого доступа или отправки отчетов на E-Mail.
Стоимость: минимальная стоимость 19$ за 200 запросов.
Бесплатно | 1 проверка | Глубина скана | Наличие API | Формат отчетов |
---|---|---|---|---|
Да | Тариф | 1000 | Да | CSV, XLSX |
Поисковые системы: Яндекс, Google, Mail.ru.
Особенности: Сравнительно невысокая цена с хорошей глубиной сканирования. Однако, сервис перестал развиваться, что является изрядным минусом.
Бесплатно | 1 проверка | Глубина скана | Наличие API | Формат отчетов |
---|---|---|---|---|
Да | Тариф | 0.02$ | НЕТ | CSV, XLS, PDF, DOC |
Seoplane
Поисковые системы: Яндекс, Google.
Особенности: Самый дешевый на русскоязычном рынке. Из минусов, пожалуй, только отсутствие API и дополнительных поисковых систем для мониторинга. Бесплатно.
1 проверка | Глубина скана | Наличие API | Формат отчетов | |
---|---|---|---|---|
Да | Тариф | 0.02$ | НЕТ | CSV, XLS |
Я намеренно выделил только эти сервисы для мониторинга позиций, так как вижу в них некоторую особенность. Однако я обещал 10 сервисов для анализа позиций сайта, поэтому следующие ссылки завершат мой список.
- http://top-inspector.ru/ — поисковые системы только Google и Яндекс с ценой 0,05 за проверку с глубиной в 100 позиций, сразу в обоих поисковых системах. Имеет свой API и отчеты в форматах: CSV, XLS.
- https://seolib.ru — стоит 0,05 за одну проверку с максимальной глубиной в 500 позиций. Нет API, но больше форматов отчетов: CSV, XLS, XLSx.
- http://positon.ru/ — Много поисковиков (Яндекс, Google, Rambler, Mail.ru, Tut.by) и средняя цена за одну проверку (0,04) делает этот сервис более привлекательным. К тому же есть API и три формата отчетов: CSV, XLS, HTML.
- http://seranking.ru/ — мониторит в Яндекс, Google (в том числе Mobile и Maps), Yahoo, Bing. Цена 0,03 и глубина мониторинга 1000. Есть API и PDF, HTML, XLS варианты отчетов. Весьма привлекательный инструмент для мониторинга и анализа позиций.
- SEOBudget.ru — честно говоря, не очень выгодный инструмент. Поисковые системы: Яндекс, Google, стоимость 0,06 и только один вариант отчета в CSV.
- http://sitexpert.org — нет API. Мониторит Google, Яндекс, Yahoo, Bing с ценой в 0,05.
- Serpseeker.com — кхм… цена 2,5 анализирует позиции в Яндекс, Google, Bing, Yahoo, есть API и три вида отчета: CSV, XLS, Html.
Что-то дополнительно
Многие из сервисов предлагаю еще и различные дополнительные услуги — проверку пузомерок, анализ ссылок, аудит сайта, прочее. Конечно, полезно иметь все под рукой, но все же лучше когда сервис или программа делает свое целевое назначение, стремление охватить все аспекты SEO редко бывает удачным. Поэтому лучше ориентироваться именно на удобство, точность проверки, стоимость, а потом уже на смежные функции.
Так как множество сервисов предлагает демо/триал версию или пополнение счета бонусными деньгами — оптимальным вариантом будет попробовать все возможные и подобрать уже, как говоритья, под себя.
Не пренебрегайте возможностью комплекса, часто более выгодно купить тарифный план (выбирайте у кого самостоятельно) и выполнять несколько задач одновременно.
Если знаете сервисы для мониторинга позиций ниже 0,02$ за проверку, пишите в комментариях, я обязательно их проверю и опубликую.
За кадром
Да, я не проверил англоязычные варианты для мониторинга позиций, но в скором времени я обязательно исправлюсь. Следите за новостями блога и подписывайтесь на обновления, чтобы не пропустить ничего важного.
xseo.top
Мониторинг позиций своими руками / Habr
Делаем мониторинг позиций запросов в поисковой системе, начало.
Обычно мы заинтересованны в увеличении клиентов.
А что-бы увеличить что-то, нужно это сначало оценить.
А так уж исторически сложилось, что часть клиентов на интернет-магазины приходит с поисковых систем.
( Про работу с контекстной рекламой и прайс-агрегаторами напишу в следующих статьях, если кому будет интересно. )
А для оценики своего состояния в поисковиках, обычно нужно собрать с них статистику по положению запросов в выдаче.
Наш инструмент будет состоять из 2-х частей:
- скрипт для парсинга поисковой выдачи, с помощью Curl и lxml
- веб-интерфейс для управления и отображения, на Django
Узнаем у yandex.ru нашу позицию по запросу.
Хочу сразу уточнить, в данной статье будет описаны самые азы и сделаем самый простой вариант, который в дальнейшем будем усовершенствовать.
Для начала сделаем функцию которая по урлу возвращает html.
Загружать страницу будем c помощью pycurl.
import pycurl
c = pycurl.Curl()
Установим url который будем загружать
url = 'ya.ru'
c.setopt(pycurl.URL, url)
Для возврата тела страницы curl использует callback функцию, которой передает строку с html.
Воспользуемся строковым буфером StringIO, на вход у него есть функция write(), а забирать все содержимое из него мы сможем через getvalue()
from StringIO import StringIO
c.bodyio = StringIO()
c.setopt(pycurl.WRITEFUNCTION, c.bodyio.write)
c.get_body = c.bodyio.getvalue
На всякий случай сделаем наш curl похожим на броузер, пропишем таймауты, юзерагента, заголовки и т.д.
c.setopt(pycurl.FOLLOWLOCATION, 1)
c.setopt(pycurl.MAXREDIRS, 5)
c.setopt(pycurl.CONNECTTIMEOUT, 60)
c.setopt(pycurl.TIMEOUT, 120)
c.setopt(pycurl.NOSIGNAL, 1)
c.setopt(pycurl.USERAGENT, 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:13.0) Gecko/20100101 Firefox/13.0')
httpheader = [
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3',
'Accept-Charset:utf-8;q=0.7,*;q=0.5',
'Connection: keep-alive',
]
c.setopt(pycurl.HTTPHEADER, httpheader)
Теперь загружаем страницу
c.perform()
Вот и все, страница у нас, мы можем прочитать html страницы
print c.get_body()
Так-же можем прочитать заголовки
print c.getinfo(pycurl.HTTP_CODE)
И если получили получили какой-то отличный от 200 ответ сервера, то сможем его обработать. Сейчас мы просто выкинем исключение, обрабатывать исключения будем в следующих статьях
if c.getinfo(pycurl.HTTP_CODE) != 200:
raise Exception('HTTP code is %s' % c.getinfo(pycurl.HTTP_CODE))
Обернем все что получилось в функцию, в итоге у нас получилось
import pycurl
try:
from cStringIO import StringIO
except ImportError:
from StringIO import StringIO
def get_page(url, *args, **kargs):
c = pycurl.Curl()
c.setopt(pycurl.URL, url)
c.bodyio = StringIO()
c.setopt(pycurl.WRITEFUNCTION, c.bodyio.write)
c.get_body = c.bodyio.getvalue
c.headio = StringIO()
c.setopt(pycurl.HEADERFUNCTION, c.headio.write)
c.get_head = c.headio.getvalue
c.setopt(pycurl.FOLLOWLOCATION, 1)
c.setopt(pycurl.MAXREDIRS, 5)
c.setopt(pycurl.CONNECTTIMEOUT, 60)
c.setopt(pycurl.TIMEOUT, 120)
c.setopt(pycurl.NOSIGNAL, 1)
c.setopt(pycurl.USERAGENT, 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:13.0) Gecko/20100101 Firefox/13.0')
httpheader = [
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3',
'Accept-Charset:utf-8;q=0.7,*;q=0.5',
'Connection: keep-alive',
]
c.setopt(pycurl.HTTPHEADER, httpheader)
c.perform()
if c.getinfo(pycurl.HTTP_CODE) != 200:
raise Exception('HTTP code is %s' % c.getinfo(pycurl.HTTP_CODE))
return c.get_body()
Проверим функцию
print get_page('ya.ru')
Выберем из страницы поисковой выдачи список сайтов с позициями
Сконструируем поисковый запрос,
на yandex.ru/yandsearch нам нужно послать 3 GET параметра,
‘text’-запрос, ‘lr’-регион поиска, ‘p’-страница выдачи
import urllib
import urlparse
key='кирпич'
region=213
page=1
params = ['http', 'yandex.ru', '/yandsearch', '', '', '']
params[4] = urllib.urlencode({
'text':key,
'lr':region,
'p':page-1,
})
url = urlparse.urlunparse(params)
Выведем url и проверим в броузере
print url
Получим через предыдущую функцию страницу с выдачей
html = get_page(url)
Теперь будем ее разбирать по dom модели с помощью lxml
import lxml.html
site_list = []
for h3 in lxml.html.fromstring(html).find_class('b-serp-item__title'):
b = h3.find_class('b-serp-item__number')
if len(b):
num = b[0].text.strip()
url = h3.find_class('b-serp-item__title-link')[0].attrib['href']
site = urlparse.urlparse(url).hostname
site_list.append((num, site, url))
Поподробнее напишу что тут происходит
lxml.html.fromstring(html) — из html строки мы делаем обьект html документа
.find_class(‘b-serp-item__title’) — ищем по документу все теги, которые содержат класс ‘b-serp-item__title’, получаем список элементов h3 которые содержат интерсующую нас информацию по позициям, и проходим по ним циклом
b = h3.find_class(‘b-serp-item__number’) — ищем внутри найденого тега h3 элемент b, кторый содержит номер позиции сайта, если нашли то дальше собираем позицию b[0].text.strip() сайта и строчку c url сайта
urlparse.urlparse(url).hostname — получаем доменное имя
Проверим получившийся список
print site_list
И соберем все получившееся в функцию
def site_list(key, region=213, page=1):
params = ['http', 'yandex.ru', '/yandsearch', '', '', '']
params[4] = urllib.urlencode({
'text':key,
'lr':region,
'p':page-1,
})
url = urlparse.urlunparse(params)
html = get_page(url)
site_list = []
for h3 in lxml.html.fromstring(html).find_class('b-serp-item__title'):
b = h3.find_class('b-serp-item__number')
if len(b):
num = b[0].text.strip()
url = h3.find_class('b-serp-item__title-link')[0].attrib['href']
site = urlparse.urlparse(url).hostname
site_list.append((num, site, url))
return site_list
Проверим функцию
print site_list('кирпич', 213, 2)
Найдем наш сайт в списке сайтов
Нам потребуется вспомогательная функция, которая отрезает ‘www.’ в начале сайта
def cut_www(site):
if site.startswith('www.'):
site = site[4:]
return site
Получим список сайтов и сравним с нашим сайтом
site = 'habrahabr.ru'
for pos, s, url in site_list('python', 213, 1):
if cut_www(s) == site:
print pos, url
Хм, на первой стрнице выдачи по ‘python’ хабра нету, попробуем пройти выдачу в цикле в глубину,
но нам нужно поставить ограничение, max_position — до какой позиции мы будем проверять,
заодно и обернем в функцию, а на случай, если ничего не найдется будем возвращать None, None
def site_position(site, key, region=213, max_position=10):
for page in range(1,int(math.ceil(max_position/10.0))+1):
site = cut_www(site)
for pos, s, url in site_list(key, region, page):
if cut_www(s) == site:
return pos, url
return None, None
Проверяем
print site_position('habrahabr.ru', 'python', 213, 100)
Вот собственно мы и получили нашу позицию.
Напишите пожалста, интересна ли данная тема и нужно-ли продолжать?
Про что написать в следующей статье?
— сделать вебинтерфейс к этой функции с табличками и графиками и повесить скрипт на cron
— сделать обработку капчи для этой функции, и вручную и через специальные api
— сделать скрипт мониторинга чего-нить с многопоточностью
— описать работу с директом на примере генерации и заливки обьявлений через api или управления ценами
habr.com