Seachnadh teorainn chuardaigh LinkedIn trí imirt leis an API

Teorainn

Tá a leithéid de theorannú ar LinkedIn - Teorainn úsáide tráchtála. Tá sé thar a bheith dóchúil nár casadh ort nó nár chuala tú trácht air, cosúil liomsa go dtí le déanaí.

Seachnadh teorainn chuardaigh LinkedIn trí imirt leis an API

Is é croílár na teorann ná má úsáideann tú an cuardach do dhaoine lasmuigh de do theagmhálacha go ró-mhinic (níl aon méadracht chruinn ann, go gcinnfidh an t-algartam bunaithe ar do ghníomhartha - cé chomh minic agus cé mhéad a chuardaigh tú, daoine breise), ansin an toradh cuardaigh teoranta do thrí phróifíl, in ionad 1000 (100 leathanach réamhshocraithe, 10 bpróifíl in aghaidh an leathanaigh). Athshocraítear an teorainn ag tús gach míosa. Ar ndóigh, níl an teorainn seo ag cuntais préimhe.

Ach ní fada ó shin, le haghaidh tionscadal peataí, thosaigh mé ag imirt go leor le cuardach LinkedIn agus go tobann fuair mé an teorannú seo. Ar ndóigh, níor thaitin sé seo go mór liom, mar níor úsáid mé é chun críocha tráchtála ar bith, agus mar sin ba é mo chéad smaoineamh staidéar a dhéanamh ar an teorannú agus iarracht a dhéanamh dul timpeall air.

[Soiléiriú tábhachtach: cuirtear na hábhair san alt i láthair chun críocha faisnéise agus oideachais amháin. Ní spreagann an t-údar a n-úsáid chun críocha tráchtála.]

Táimid ag déanamh staidéir ar an bhfadhb

Tá: in ionad deich bpróifíl le huimhrigh, ní thagann an cuardach ar ais ach trí cinn, ina dhiaidh sin cuirtear bloc le “moladh” de chuntas préimhe isteach agus thíos tá próifílí doiléir agus neamh-chliceáil.

Láithreach, sroicheann an lámh amach chuig consól an fhorbróra chun breathnú ar na próifílí folaithe seo - b'fhéidir gur féidir linn roinnt stíleanna doiléire a bhaint, nó faisnéis a bhaint as bloc sa mharcáil. Ach, ag súil go leor, tá na próifílí díreach pictiúir sealbhóirí áitritheora agus ní stóráiltear aon fhaisnéis.

Seachnadh teorainn chuardaigh LinkedIn trí imirt leis an API

Ceart go leor, déanaimis féachaint ar an gcluaisín Líonra agus seiceáil an n-oibríonn na torthaí cuardaigh malartacha nach dtugann ach trí phróifíl ar ais. Faighimid an t-iarratas a bhfuil suim againn ann le haghaidh “/api/search/cumasc” agus féachaimid ar an bhfreagra.

Seachnadh teorainn chuardaigh LinkedIn trí imirt leis an API

Tagann próifílí in eagar `san áireamh', ach tá 15 eintiteas ann cheana féin Sa chás seo, is réada iad an chéad trí cinn acu le faisnéis bhreise, tá faisnéis ar phróifíl shonrach i ngach réad (mar shampla, cibé an bhfuil an phróifíl préimhe. ).

Seachnadh teorainn chuardaigh LinkedIn trí imirt leis an API

Is fíorphróifílí iad an chéad 12 eile - torthaí cuardaigh, agus ní thaispeánfar ach trí cinn díobh dúinn. Mar is féidir leat buille faoi thuairim cheana féin, ní thaispeánann sé ach iad siúd a fhaigheann faisnéis bhreise (na chéad trí réad). Mar shampla, má thógann tú an freagra ó phróifíl gan teorainn, gheobhaidh tú 28 eintiteas - 10 réad le breise. faisnéise agus 18 bpróifíl.

Freagra do phróifíl gan teorainnSeachnadh teorainn chuardaigh LinkedIn trí imirt leis an API
Seachnadh teorainn chuardaigh LinkedIn trí imirt leis an API

Cén fáth a dtagann níos mó ná 10 próifíl, cé go n-iarrtar go díreach 10 gcinn, agus ní ghlacann siad páirt sa taispeáint ar bhealach ar bith, fiú ar an gcéad leathanach eile ní bheidh siad - níl a fhios agam go fóill. Má dhéanann tú anailís ar URL an iarratais, feicfidh tú go bhfuil count=10 (cé mhéad próifíl le tabhairt ar ais sa fhreagra, 49 ar a mhéad).

Seachnadh teorainn chuardaigh LinkedIn trí imirt leis an API

Ba mhaith liom aon tuairimí a fháil ar an ábhar seo.

Déanaimis turgnamh

Ceart go leor, is é an rud is tábhachtaí atá ar eolas againn go cinnte ná go bhfuil níos mó próifílí sa fhreagra ná mar a thaispeánann siad dúinn. Ciallaíonn sé seo gur féidir linn níos mó sonraí a fháil, in ainneoin na teorann. Déanaimis iarracht an API a tharraingt orainn féin, go díreach ón gconsól, ag baint úsáide as beir.

Seachnadh teorainn chuardaigh LinkedIn trí imirt leis an API

Mar a bheifí ag súil leis, faighimid earráid, 403. Is mar gheall ar shlándáil é seo, níl comhartha CSRF á sheoladh againn anseo (CSRF ar Vicipéid. Go hachomair, cuirtear comhartha uathúil le gach iarratas, a sheiceáiltear ar an bhfreastalaí le haghaidh barántúlachta).

Seachnadh teorainn chuardaigh LinkedIn trí imirt leis an API

Is féidir é a chóipeáil ó aon iarratas rathúil eile nó ó fhianáin, áit a bhfuil sé stóráilte sa réimse ‘JSESSIONID’.

Cá háit a bhfaighidh tú an comharthaCeannteideal iarratais eile:

Seachnadh teorainn chuardaigh LinkedIn trí imirt leis an API

Nó ó fhianáin, go díreach tríd an consól:

Seachnadh teorainn chuardaigh LinkedIn trí imirt leis an API

Déanaimis iarracht arís, an uair seo tugaimid na socruithe le hiarraidh, ina sonraímid ár chomhartha csrf mar pharaiméadar sa cheanntásc.

Seachnadh teorainn chuardaigh LinkedIn trí imirt leis an API

Rath, faigheann muid gach 10 próifíl. :tada:

Mar gheall ar an difríocht sna ceannteidil, tá struchtúr an fhreagra beagán difriúil ón méid a fuarthas san iarratas bunaidh. Is féidir leat an struchtúr céanna a fháil má chuireann tú 'Glac leis: 'application/vnd.linkedin.normalized+json+2.1' lenár réad, in aice leis an comhartha csrf.
Sampla de fhreagra agus ceanntásc curtha leisSeachnadh teorainn chuardaigh LinkedIn trí imirt leis an API

Tuilleadh faoin gceannteideal Glac

Cad atá romhainn?

Ansin is féidir leat an paraiméadar `tús` a chur in eagar (de láimh nó a uathoibriú), ag díriú ar an innéacs, ag tosú óna dtabharfar 10 bpróifíl dúinn (réamhshocraithe = 0) ón toradh cuardaigh iomlán. I bhfocail eile, trína mhéadú faoi 10 tar éis gach iarratais, faighimid an gnáth-aschur leathanach ar leathanach, 10 bpróifíl ag an am.

Ag an gcéim seo bhí go leor sonraí agus saoirse agam chun leanúint ar aghaidh ag obair ar an tionscadal peataí. Ach bheadh ​​sé ina pheaca gan iarracht a dhéanamh na sonraí seo a thaispeáint ar an bpointe, ós rud é go raibh sé ar láimh cheana féin. Ní rachaimid isteach in Ember, a úsáidtear ag an tosach. Bhí jQuery ceangailte leis an suíomh, agus tar éis duit an t-eolas ar an gcomhréir bhunúsach a thochailt i gcuimhne, is féidir leat iad seo a leanas a chruthú i gceann cúpla nóiméad.

Cóid jQuery

/* рендер блока, принимаем данные профиля и вставляем блок в список профилей используя эти данные */
const  createProfileBlock = ({ headline, publicIdentifier, subline, title }) => {
    $('.search-results__list').append(
        `<li class="search-result search-result__occluded-item ember-view">
            <div class="search-entity search-result search-result--person search-result--occlusion-enabled ember-view">
                <div class="search-result__wrapper">
                    <div class="search-result__image-wrapper">
                        <a class="search-result__result-link ember-view" href="/ga/in/${publicIdentifier}/">
                            <figure class="search-result__image">
                                <div class="ivm-image-view-model ember-view">
                                    <img class="lazy-image ivm-view-attr__img--centered EntityPhoto-circle-4  presence-entity__image EntityPhoto-circle-4 loaded" src="http://www.userlogos.org/files/logos/give/Habrahabr3.png" />
                                </div>
                            </figure>
                        </a>
                    </div>
                    
                    <div class="search-result__info pt3 pb4 ph0">
                        <a class="search-result__result-link ember-view" href="/ga/in/${publicIdentifier}/">
                            <h3 class="actor-name-with-distance search-result__title single-line-truncate ember-view">
                                ${title.text}
                            </h3>
                        </a>

                        <p class="subline-level-1 t-14 t-black t-normal search-result__truncate">${headline.text}</p>

                        <p class="subline-level-2 t-12 t-black--light t-normal search-result__truncate">${subline.text}</p>
                    </div>
                </div>
            </div>
        <li>`
    );
};

// дергаем апи, получаем данные и рендерим профили
const fetchProfiles = () => {
    // токен
   const csrf = 'ajax:9082932176494192209';
    
   // объект с настройками запроса, передаем токен
   const settings = { headers: { 'csrf-token': csrf } }

    // урл запроса, с динамическим индексом старта в конце
   const url = `https://www.linkedin.com/voyager/api/search/blended?count=10&filters=List(geoRegion-%3Ejp%3A0,network-%3ES,resultType-%3EPEOPLE)&origin=FACETED_SEARCH&q=all&queryContext=List(spellCorrectionEnabled-%3Etrue,relatedSearchesEnabled-%3Etrue)&start=${nextItemIndex}`; 
    /* делаем запрос, для каждого профиля в ответе вызываем рендер блока, и после инкрементируем стартовый индекс на 10 */
    fetch(url, settings).then(response => response.json()).then(data => {
        data.elements[0].elements.forEach(createProfileBlock);
        nextItemIndex += 10;
});
};


// удаляем все профили из списка
$('.search-results__list').find('li').remove();
// вставляем кнопку загрузки профилей
$('.search-results__list').after('<button id="load-more">Load More</button>');
// добавляем функционал на кнопку
$('#load-more').addClass('artdeco-button').on('click', fetchProfiles);

// ставим по умолчания индекс профиля для запроса
window.nextItemIndex = 0;

Má dhéanann tú é seo go díreach sa chonsól ar an leathanach cuardaigh, cuirfidh sé cnaipe leis a luchtaíonn 10 bpróifíl nua le gach cliceáil agus a chuirfidh i liosta iad. Ar ndóigh, athraigh an comhartha agus an URL chuig an gceann riachtanach sula ndéanann tú é seo. Beidh an t-ainm, an t-ionad, an suíomh, an nasc leis an bpróifíl agus íomhá an tsealbhóra áite sa bhloc próifíle.

Seachnadh teorainn chuardaigh LinkedIn trí imirt leis an API

Conclúid

Mar sin, gan mórán iarrachta, bhíomar in ann an láthair lag a aimsiú agus ár gcuardach a fháil ar ais gan srianta. Bhí sé go leor chun anailís a dhéanamh ar na sonraí agus a cosán, breathnú ar an iarratas féin.

Ní féidir liom a rá gur fadhb thromchúiseach í seo do LinkedIn, mar ní bagairt ar bith é. Is é an t-uasmhéid a chailltear brabús mar gheall ar a leithéid de “roundswork”, a ligeann duit íoc as préimhe a sheachaint. B'fhéidir go bhfuil a leithéid de fhreagra freastalaí riachtanach le haghaidh oibriú ceart codanna eile den suíomh, nó go simplí leisce na bhforbróirí agus easpa acmhainní nach gceadaítear sin a dhéanamh go maith. (Léirigh an srian i mí Eanáir 2015; roimhe seo ní raibh aon teorainn).

PS

Ar ndóigh, is sampla sách primitive de na cumais é an cód jQuery. Faoi láthair tá síneadh brabhsálaí cruthaithe agam a oireann do mo chuid riachtanas. Cuireann sé cnaipí rialaithe leis agus déanann sé próifílí iomlána le pictiúir, cnaipe cuireadh agus naisc ghinearálta. Ina theannta sin, bailíonn sé go dinimiciúil scagairí le haghaidh láithreacha, cuideachtaí, agus rudaí eile, agus aisghabhann sé comhartha ó fhianáin. Mar sin níl aon ghá le hardcode rud ar bith níos mó. Bhuel, cuireann sé réimsí socruithe breise leis, agus la “cé mhéad próifíl atá le hiarraidh ag an am, suas le 49.”

Seachnadh teorainn chuardaigh LinkedIn trí imirt leis an API

Tá mé fós ag obair ar an méid breise seo agus tá sé beartaithe agam é a scaoileadh don phobal. Scríobh má tá suim agat.

Foinse: will.com

Add a comment