1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вступайте в наш Telegram чат: https://t.me/a_parser Нас уже 2600+ и мы растем!
    Скрыть объявление

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

Парсинг списка TLD бэклинков из searchmetrics.com

Метки:
  1. miranon

    miranon A-Parser Pro License
    A-Parser Pro

    Регистрация:
    6 июн 2012
    Сообщения:
    28
    Симпатии:
    7
    Здравствуйте,
    Скажите, возможно ли спарсить данные отсюда: http://suite.searchmetrics.com/en/research/links/backlink-profile/tld-list?url=a-parser.com ?
    Насколько я понимаю, данные подгружаются через Javascript, т.е. получается что пока нет возможности спарсить через А-парсер, например через Net::HTTP? Если это так планируется ли в будущем поддержка Javascript?
     
  2. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.372
    Симпатии:
    2.102
    Здравствуйте.
    Да, вполне можно:
    [​IMG]
    Детально метод описан здесь: 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
     
    Forbidden и miranon нравится это.
  3. johnsmith

    johnsmith A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    13 мар 2013
    Сообщения:
    63
    Симпатии:
    31
    а parseJSON это уже встроенное? или надо дописать в tools.js типа такого:
    Tools.prototype.parseJSON = function(json){
    var json_data = JSON.parse(json);
    return json_data;
    }
     
  4. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.372
    Симпатии:
    2.102
  5. johnsmith

    johnsmith A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    13 мар 2013
    Сообщения:
    63
    Симпатии:
    31
    Support нравится это.
  6. miranon

    miranon A-Parser Pro License
    A-Parser Pro

    Регистрация:
    6 июн 2012
    Сообщения:
    28
    Симпатии:
    7
    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();

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

    Можете помочь поправить парсер? :)
     
    Forbidden нравится это.
  7. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.372
    Симпатии:
    2.102
    Ни там, ни здесь ссылка для запроса не берется из кода. Данные подгружаются AJAX'ом, в дебаггере просто нужно найти урл, по которому они приходят и его использовать. Как пользоваться дебаггером для поиска нужного урла как раз и показано в той статье. Этот же способ использован здесь: https://a-parser.com/threads/1725/
    А причина довольно проста: поменялся урл, по которому делается запрос, а именно http на https:
    [​IMG]
     
    Metroid, Forbidden, relay и ещё 1-му нравится это.

Поделиться этой страницей