Парсер MOZ с авторизацией

Пресет Парсинг OpenSiteExplorer (MOZ) с авторизацией 1.0

Available for license holders
  • Автор темы Автор темы Support
  • Дата начала Дата начала

Support

Administrator
Команда форума
A-Parser Enterprise
В А-Парсере есть парсер Rank::OpenSiteExplorer Rank::OpenSiteExplorer. Но он возвращает лишь некоторые параметры. Если смотреть на сайте, то их значительно больше, например Spam Score, Total Internal/External Links, MozRank, MozTrust и другие. Полный список параметров можно увидеть здесь.

Для того, чтобы все это парсить, нужно найти запрос, по которому возвращается данная информация. Проанализируем работу сайта с помощью любого дебаггера. В частности интересует загрузка информации на этой странице. После анализа увидим такой запрос:
Код:
https://moz.com/researchtools/ose/api/comparisons?site=a-parser.com
Данный запрос возвращает данные в JSON, а благодаря tools.parseJSON нам не составит труда извлечь нужные параметры.

Но на moz.com существует ограничение - 10 запросов с одного IP в сутки без авторизации. Данная проблема частично решается использованием прокси, но на большом кол-ве проверяемых сайтов это может вызвать проблемы. Поэтому логичным будет парсинг с авторизацией.

Обычно за авторизацию отвечает один или несколько куков. Немного потестировав полученный ранее запрос, мы обнаружим, что здесь это mozauth. И приходит он после авторизации на сайте.

Исходя из всего, что описано выше, вся логика парсинга сводится к двум этапам:
  1. Получаем mozauth, авторизуясь на сайте
  2. Парсим нужную информацию, подставляя в куки полученный ранее mozauth
Авторизоваться с помощью А-Парсера не сложно. Смотрим в дебаггере, как это происходит через браузер и повторяем все это в парсере. Как правило - это передача логина и пароля на сервер в теле POST запроса и получение ответа. Нас интересуют только куки, поэтому достаточно получить только заголовки и регулярным выражением извлечь нужное значение.
oCOU8.png

Код:
eyJwcmVzZXQiOiJNT1ogR2V0IGF1dGgiLCJ2YWx1ZSI6eyJwcmVzZXQiOiJNT1og
R2V0IGF1dGgiLCJwYXJzZXJzIjpbWyJOZXQ6OkhUVFAiLCJkZWZhdWx0Iix7InR5
cGUiOiJvdmVycmlkZSIsImlkIjoiZ29vZENvZGUiLCJ2YWx1ZSI6WzMwMiw0MDNd
fSx7InR5cGUiOiJvdmVycmlkZSIsImlkIjoicmVjdXJzZSIsInZhbHVlIjoiMCJ9
LHsidHlwZSI6Im92ZXJyaWRlIiwiaWQiOiJxdWVyeWZvcm1hdCIsInZhbHVlIjoi
aHR0cHM6Ly9tb3ouY29tL2xvZ2luIn0seyJ0eXBlIjoib3ZlcnJpZGUiLCJpZCI6
Im1ldGhvZCIsInZhbHVlIjoiUE9TVCJ9LHsidHlwZSI6Im92ZXJyaWRlIiwiaWQi
OiJib2R5IiwidmFsdWUiOiJkYXRhW1VzZXJdW3JlZGlyZWN0XT0vaG9tZSZkYXRh
W1VzZXJdW2xvZ2luX2VtYWlsXT0kcXVlcnkubG9naW4mZGF0YVtVc2VyXVtwYXNz
d29yZF09JHF1ZXJ5LnBhc3N3b3JkIn0seyJ0eXBlIjoiY3VzdG9tUmVzdWx0Iiwi
cmVzdWx0IjoiaGVhZGVycyIsInJlZ2V4IjoibW96YXV0aD0oLis/KSg/Ojt8JCki
LCJyZWdleFR5cGUiOiIiLCJyZXN1bHRUeXBlIjoiZmxhdCIsImFycmF5TmFtZSI6
IiIsInJlc3VsdHMiOlsia2V5Il19LHsidHlwZSI6Im92ZXJyaWRlIiwiaWQiOiJv
bmx5aGVhZGVycyIsInZhbHVlIjp0cnVlfV1dLCJyZXN1bHRzRm9ybWF0IjoiWyUg
SUYgcDEuY29kZSA9PSAzMDI7XG5cdHAxLmtleTtcbkVMU0U7XG5cdCdBdXRob3Jp
emF0aW9uIGVycm9yJztcbkVORCAlXSIsInJlc3VsdHNTYXZlVG8iOiJmaWxlIiwi
cmVzdWx0c0ZpbGVOYW1lIjoiJGRhdGVmaWxlLmZvcm1hdCgpLnR4dCIsImFkZGl0
aW9uYWxGb3JtYXRzIjpbXSwicmVzdWx0c1VuaXF1ZSI6Im5vIiwicXVlcnlGb3Jt
YXQiOlsiJHF1ZXJ5Il0sInVuaXF1ZVF1ZXJpZXMiOmZhbHNlLCJzYXZlRmFpbGVk
UXVlcmllcyI6ZmFsc2UsIml0ZXJhdG9yT3B0aW9ucyI6eyJvbkFsbExldmVscyI6
ZmFsc2UsInF1ZXJ5QnVpbGRlcnNBZnRlckl0ZXJhdG9yIjpmYWxzZSwicXVlcnlC
dWlsZGVyc09uQWxsTGV2ZWxzIjpmYWxzZX0sInJlc3VsdHNPcHRpb25zIjp7Im92
ZXJ3cml0ZSI6ZmFsc2V9LCJkb0xvZyI6Im5vIiwia2VlcFVuaXF1ZSI6Ik5vIiwi
bW9yZU9wdGlvbnMiOmZhbHNlLCJyZXN1bHRzUHJlcGVuZCI6IiIsInJlc3VsdHNB
cHBlbmQiOiIiLCJxdWVyeUJ1aWxkZXJzIjpbeyJzb3VyY2UiOiJxdWVyeSIsInR5
cGUiOiJyZWdleCIsInJlZ2V4IjoiKFteJV0rKVxcfCguKykiLCJyZWdleFR5cGUi
Om51bGwsInRvIjpbImxvZ2luIiwicGFzc3dvcmQiXX1dLCJyZXN1bHRzQnVpbGRl
cnMiOltdLCJjb25maWdPdmVycmlkZXMiOltdLCJydW5UYXNrT25Db21wbGV0ZSI6
bnVsbCwidXNlUmVzdWx0c0ZpbGVBc1F1ZXJpZXNGaWxlIjpmYWxzZSwicnVuVGFz
a09uQ29tcGxldGVDb25maWciOiJkZWZhdWx0IiwidG9vbHNKUyI6IiJ9fQ==
  • На вход нужно подать одну пару логин|пароль через разделитель |
    Например: [email protected]|your_password
  • На выходе получим ключ авторизации mozauth
  • Данный пресет достаточно запустить один раз перед запуском второго
Теперь используя уже известный запрос и полученный mozauth, мы можем парсить нужные нам данные.
9cyyQ.png

Код:
eyJwcmVzZXQiOiJNT1ogd2l0aCBBY2NvdW50IiwidmFsdWUiOnsicHJlc2V0Ijoi
TU9aIHdpdGggQWNjb3VudCIsInBhcnNlcnMiOltbIk5ldDo6SFRUUCIsImRlZmF1
bHQiLHsidHlwZSI6Im92ZXJyaWRlIiwiaWQiOiJxdWVyeWZvcm1hdCIsInZhbHVl
IjoiaHR0cHM6Ly9tb3ouY29tL3Jlc2VhcmNodG9vbHMvb3NlL2FwaS9jb21wYXJp
c29ucz9zaXRlPSRxdWVyeSJ9LHsidHlwZSI6Im92ZXJyaWRlIiwiaWQiOiJjb29r
aWVzIiwidmFsdWUiOiJtb3phdXRoPVx1MDQxN1x1MDQxNFx1MDQxNVx1MDQyMVx1
MDQyYyBcdTA0MWRcdTA0MjNcdTA0MTZcdTA0MWRcdTA0MWUgXHUwNDIzXHUwNDFh
XHUwNDEwXHUwNDE3XHUwNDEwXHUwNDIyXHUwNDJjIE1PWkFVVEgifSx7InR5cGUi
OiJvdmVycmlkZSIsImlkIjoiZ29vZENvZGVSZWdleCIsInZhbHVlIjoiMjAwfDQy
MiJ9XV0sInJlc3VsdHNGb3JtYXQiOiJbJSBVU0UgTWF0aDtcbmpzb24gPSB0b29s
cy5wYXJzZUpTT04ocDEuZGF0YSk7XG5cbmRhID0ganNvbi5kYXRhLnJvb3RfZG9t
YWluLjAuZG9tYWluX2F1dGhvcml0eSA/IE1hdGguaW50KGpzb24uZGF0YS5yb290
X2RvbWFpbi4wLmRvbWFpbl9hdXRob3JpdHkgKyAwLjUpIDogJy0nO1xucGEgPSBq
c29uLmRhdGEucGFnZS4wLnBhZ2VfYXV0aG9yaXR5ID8gTWF0aC5pbnQoanNvbi5k
YXRhLnBhZ2UuMC5wYWdlX2F1dGhvcml0eSArIDAuNSkgOiAnLSc7XG5zcyA9IGpz
b24uZGF0YS5zdWJkb21haW4uMC5zcGFtX3Njb3JlID8ganNvbi5kYXRhLnN1YmRv
bWFpbi4wLnNwYW1fc2NvcmUgOiAnLSc7XG5cbnF1ZXJ5IF8gJyAtIERBOicgXyBk
YSBfICc7IFBBOicgXyBwYSBfICc7IFNwYW0gU2NvcmU6JyBfIHNzIF8gXCJcXG5c
IiAlXSIsInJlc3VsdHNTYXZlVG8iOiJmaWxlIiwicmVzdWx0c0ZpbGVOYW1lIjoi
JGRhdGVmaWxlLmZvcm1hdCgpLnR4dCIsImFkZGl0aW9uYWxGb3JtYXRzIjpbXSwi
cmVzdWx0c1VuaXF1ZSI6Im5vIiwicXVlcnlGb3JtYXQiOlsiJHF1ZXJ5Il0sInVu
aXF1ZVF1ZXJpZXMiOmZhbHNlLCJzYXZlRmFpbGVkUXVlcmllcyI6dHJ1ZSwiaXRl
cmF0b3JPcHRpb25zIjp7Im9uQWxsTGV2ZWxzIjpmYWxzZSwicXVlcnlCdWlsZGVy
c0FmdGVySXRlcmF0b3IiOmZhbHNlLCJxdWVyeUJ1aWxkZXJzT25BbGxMZXZlbHMi
OmZhbHNlfSwicmVzdWx0c09wdGlvbnMiOnsib3ZlcndyaXRlIjpmYWxzZX0sImRv
TG9nIjoibm8iLCJrZWVwVW5pcXVlIjoiTm8iLCJtb3JlT3B0aW9ucyI6ZmFsc2Us
InJlc3VsdHNQcmVwZW5kIjoiIiwicmVzdWx0c0FwcGVuZCI6IiIsInF1ZXJ5QnVp
bGRlcnMiOltdLCJyZXN1bHRzQnVpbGRlcnMiOltdLCJjb25maWdPdmVycmlkZXMi
OltdLCJydW5UYXNrT25Db21wbGV0ZSI6bnVsbCwidXNlUmVzdWx0c0ZpbGVBc1F1
ZXJpZXNGaWxlIjpmYWxzZSwicnVuVGFza09uQ29tcGxldGVDb25maWciOiJkZWZh
dWx0IiwidG9vbHNKUyI6IiJ9fQ==
  • На вход подаем список сайтов (страниц)
  • В Cookies подставляем mozauth из предыдущего пресета
  • По-умолчанию на выходе получаем список сайтов (страниц) с PA, DA, Spam Score
  • Можно выводить любой набор параметров, изменив формат результата. Пример JSON с информацией для a-parser.com здесь
Пример результата:
100 потоков, без прокси.
cgqJw.png
facebook.com - DA:100; PA:97; Spam Score:-
4pda.ru - DA:63; PA:69; Spam Score:3
a-parser.com - DA:20; PA:27; Spam Score:2
http://a-parser.com/threads/1738/ - DA:20; PA:15; Spam Score:2
microsoft.com - DA:100; PA:97; Spam Score:3
http://a-parser.com/forum/ - DA:20; PA:17; Spam Score:2
http://a-parser.com/wiki/index/ - DA:20; PA:17; Spam Score:2
google.com - DA:100; PA:97; Spam Score:2

P.S. Данным методом вполне возможен парсинг без прокси. Но существует риск получить бан аккаунта или IP.
 
А как можно в Cookies несколько штук прописать? Какой разделитель?
 
Назад
Верх