Парсинг searchmetrics.com

Пресет Парсинг searchmetrics.com 1.1

Доступно владельцам лицензии

miranon

A-Parser Pro License
A-Parser Pro
Здравствуйте,
Скажите, возможно ли спарсить данные отсюда: http://suite.searchmetrics.com/en/research/links/backlink-profile/tld-list?url=a-parser.com ?
Насколько я понимаю, данные подгружаются через Javascript, т.е. получается что пока нет возможности спарсить через А-парсер, например через Net::HTTP? Если это так планируется ли в будущем поддержка Javascript?
 
Здравствуйте.
Да, вполне можно:
JqhCd.png

Детально метод описан здесь: http://a-parser.com/threads/1699/#post-5129. Если вкратце - то нужно дебаггером отследить запрос и использовать его для получения информации. Информация выдается в JSON, поэтому нужно воспользоваться tools.parseJSON.
Код:
eyJwcmVzZXQiOiJkZWZhdWx0IiwidmFsdWUiOnsicHJlc2V0IjoiZGVmYXVsdCIs
InBhcnNlcnMiOltbIk5ldDo6SFRUUCIsImRlZmF1bHQiLHsidHlwZSI6Im92ZXJy
aWRlIiwiaWQiOiJnb29kQ29kZSIsInZhbHVlIjpbMjAwXX0seyJ0eXBlIjoib3Zl
cnJpZGUiLCJpZCI6InF1ZXJ5Zm9ybWF0IiwidmFsdWUiOiJodHRwOi8vc3VpdGUu
c2VhcmNobWV0cmljcy5jb20vZ3JpZC90b3BsZXZlbGRvbWFpbiJ9LHsidHlwZSI6
Im92ZXJyaWRlIiwiaWQiOiJtZXRob2QiLCJ2YWx1ZSI6IlBPU1QifSx7InR5cGUi
OiJvdmVycmlkZSIsImlkIjoiYm9keSIsInZhbHVlIjoiYWN0aW9uPWdyaWQvdG9w
bGV2ZWxkb21haW4mbGltaXQ9MTAwJnNvcmQ9ZGVzYyZzaWR4PWxpbmtzJnVybD0k
cXVlcnkub3JpZyZvZmZzZXQ9MCZmaWx0ZXI9e30mY29sc1tdPXRvcGxldmVsJmNv
bHNbXT1kaWZmZG9tYWlucyZjb2xzW109bGlua3MmY29sc1tdPXBlcmNlbnRhZ2Um
Y29sc1tdPWZpbHRlcl90b3BsZXZlbCZkZXBlbmRlbnRfY29sc1t0b3BsZXZlbF09
ZGlmZmRvbWFpbnMmZGVwZW5kZW50X2NvbHNbbGlua3NdPWRpZmZkb21haW5zJmRl
cGVuZGVudF9jb2xzW3BlcmNlbnRhZ2VdPWxpbmtzLGRpZmZkb21haW5zJmRhdGF0
aXRsZT1HUklEX1RPUF9MRVZFTF9ET01BSU5TJmNodW5raW5nX2xpbWl0PTEwMCZj
aHVua2luZ19vZmZzZXQ9MCZjaHVua2luZ19maWVsZHNbXT10b3BsZXZlbCZjaHVu
a2luZ19maWVsZHNbXT1kaWZmZG9tYWlucyZjaHVua2luZ19maWVsZHNbXT1saW5r
cyZjaHVua2luZ19maWVsZHNbXT1wZXJjZW50YWdlJmNodW5raW5nX2ZpZWxkc1td
PWZpbHRlcl90b3BsZXZlbCZhY2M9MCJ9LHsidHlwZSI6Im92ZXJyaWRlIiwiaWQi
OiJmb3JtYXRyZXN1bHQiLCJ2YWx1ZSI6IlslIGpzb24gPSB0b29scy5wYXJzZUpT
T04oZGF0YSk7XG5GT1JFQUNIIHIgSU4ganNvbi5yb3dzO1xuXHRyLjAgXyAnOyAn
IF8gci4xIF8gJzsgJyBfIHIuMiBfICc7ICcgXyByLjMgXyBcIlxcblwiO1xuRU5E
ICVdIn1dXSwicmVzdWx0c0Zvcm1hdCI6IiRwMS5wcmVzZXQiLCJyZXN1bHRzU2F2
ZVRvIjoiZmlsZSIsInJlc3VsdHNGaWxlTmFtZSI6IiRkYXRlZmlsZS5mb3JtYXQo
KS50eHQiLCJhZGRpdGlvbmFsRm9ybWF0cyI6W10sInJlc3VsdHNVbmlxdWUiOiJu
byIsInF1ZXJ5Rm9ybWF0IjpbIiRxdWVyeSJdLCJ1bmlxdWVRdWVyaWVzIjpmYWxz
ZSwic2F2ZUZhaWxlZFF1ZXJpZXMiOmZhbHNlLCJpdGVyYXRvck9wdGlvbnMiOnsi
b25BbGxMZXZlbHMiOmZhbHNlLCJxdWVyeUJ1aWxkZXJzQWZ0ZXJJdGVyYXRvciI6
ZmFsc2UsInF1ZXJ5QnVpbGRlcnNPbkFsbExldmVscyI6ZmFsc2V9LCJyZXN1bHRz
T3B0aW9ucyI6eyJvdmVyd3JpdGUiOmZhbHNlfSwiZG9Mb2ciOiJubyIsImtlZXBV
bmlxdWUiOiJObyIsIm1vcmVPcHRpb25zIjpmYWxzZSwicmVzdWx0c1ByZXBlbmQi
OiIiLCJyZXN1bHRzQXBwZW5kIjoiIiwicXVlcnlCdWlsZGVycyI6W10sInJlc3Vs
dHNCdWlsZGVycyI6W10sImNvbmZpZ092ZXJyaWRlcyI6W10sInJ1blRhc2tPbkNv
bXBsZXRlIjpudWxsLCJ1c2VSZXN1bHRzRmlsZUFzUXVlcmllc0ZpbGUiOmZhbHNl
LCJydW5UYXNrT25Db21wbGV0ZUNvbmZpZyI6ImRlZmF1bHQiLCJ0b29sc0pTIjoi
In19
 
а parseJSON это уже встроенное? или надо дописать в tools.js типа такого:
Tools.prototype.parseJSON = function(json){
var json_data = JSON.parse(json);
return json_data;
}
 
Support, перестал работать парсер searchmetrics.com, который вы предоставили в своем посте, я пробовал разобратся но запутался. Читал инструкцию которую посоветовали, но там разница в том что данные уже есть в коде, а здесь нет:

upload_2017-5-2_17-3-52.png


Видимо поменялся код и из-за этого перестало парсится. Пробовал разобрать в чём разница между прошлой версией:

Данные из Post Body парсера:

action=grid/topleveldomain
&limit=100
&sord=desc
&sidx=links
&url=$query.orig
&offset=0
&filter={}
&cols[]=toplevel
&cols[]=diffdomains
&cols[]=links
&cols[]=percentage
&cols[]=filter_toplevel
&dependent_cols[toplevel]=diffdomains
&dependent_cols[links]=diffdomains
&dependent_cols[percentage]=links,diffdomains
&datatitle=GRID_TOP_LEVEL_DOMAINS
&chunking_limit=100
&chunking_offset=0
&chunking_fields[]=toplevel
&chunking_fields[]=diffdomains
&chunking_fields[]=links
&chunking_fields[]=percentage
&chunking_fields[]=filter_toplevel
&acc=0

Нынешние данные:

В коде стоит:

Код:
<script type="text/javascript">
obj_suite_module.addParams({'research.links.tld':{params:{request:{action: 'grid/topleveldomain',limit: Helper.getCookie(Helper.COOKIE_PAGER_LIMIT, 100),sord: 'desc',sidx: 'links'},colorder: [0,1,2,3],cols:[{key:'toplevel',text:'Top-Level Domain',autotruncate:true},{key:'diffdomains',text:'Different Domains',width:190,format:['number'],sortable: 'desc'},{key:'links',text:'Links',width:120,sortable:'desc',type: 'social_distribution',data: [{column: 'links',className: 'backlinks',text: 'Links',show_bar: true,show_value: true,single_bar:true,advanced_filter:{text:2,href:'/research/links/backlinks/advanced-filter?url=[url]&acc=[acc]',title:'Filter backlinks by &apos;#value#&apos;',filter: {id: 'filter_links_advanced_filter',tpl: [[1,'backlinkpage','in',{col:4}]]}}}]},{key:'percentage',text:'in %',width:70,format:['number',2]},{key:'filter_toplevel'}],datatitle: 'GRID_TOP_LEVEL_DOMAINS',header:[{type: 'title',text: 'TLD List',appendix: ' (#from# to #to# of #total_rows#)',help: 'HELP_TABLE_TLD_LIST'},{type: 'panel',items:[{text: 'Export',cls: 'export'},{text: 'Report',cls: 'add x-add'}]}],footer:[{type:'pager'}]}}});obj_suite_module.registerUrlParamsCallback(getFormDataForUrl);
obj_suite_module.startupModules();
</script>


obj_suite_module.addParams({'research.links.tld':{params:{request:{action: 'grid/topleveldomain',

limit: Helper.getCookie(Helper.COOKIE_PAGER_LIMIT, 100),
sord: 'desc',
sidx: 'links'},
colorder: [0,1,2,3],
cols:
[{key:'toplevel',text:'Top-Level Domain',autotruncate:true},

{key:'diffdomains',text:'Different Domains',width:190,format:['number'],sortable: 'desc'},

{key:'links',text:'Links',width:120,sortable:'desc',type: 'social_distribution',data: [{column: 'links',className: 'backlinks',text: 'Links',show_bar: true,show_value: true,single_bar:true,advanced_filter:{text:2,href:'/research/links/backlinks/advanced-filter?url=&acc=[acc]',title:'Filter backlinks by &apos;#value#&apos;',filter: {id: 'filter_links_advanced_filter',tpl: [[1,'backlinkpage','in',{col:4}]]}}}]},

{key:'percentage',text:'in %',width:70,format:['number',2]},

{key:'filter_toplevel'}],datatitle: 'GRID_TOP_LEVEL_DOMAINS',header:[{type: 'title',text: 'TLD List',appendix: ' (#from# to #to# of #total_rows#)',help: 'HELP_TABLE_TLD_LIST'},{type: 'panel',items:[{text: 'Export',cls: 'export'},{text: 'Report',cls: 'add x-add'}]}],footer:[{type:'pager'}]}}});obj_suite_module.registerUrlParamsCallback(getFormDataForUrl);

obj_suite_module.startupModules();

Начальная часть вроде совпадает, а дальше непонятно. Обясните пожалуйста, в чём может быть дело? И где можно почитать поробнее как нужно дебаггером отследить запрос и составить парсер в таком случае как этот? Может быть есть какие то статьи на форуме?

Можете помочь поправить парсер? :)
 
Читал инструкцию которую посоветовали, но там разница в том что данные уже есть в коде, а здесь нет
Ни там, ни здесь ссылка для запроса не берется из кода. Данные подгружаются AJAX'ом, в дебаггере просто нужно найти урл, по которому они приходят и его использовать. Как пользоваться дебаггером для поиска нужного урла как раз и показано в той статье. Этот же способ использован здесь: https://a-parser.com/threads/1725/
перестал работать парсер searchmetrics.com
А причина довольно проста: поменялся урл, по которому делается запрос, а именно http на https:
JwMgm.jpeg
 
Назад
Верх