Umda
Kukho umda onjalo kwi-LinkedIn -
Undoqo womda kukuba usebenzisa ukukhangela abantu abangaphandle kwabafowunelwa rhoqo (akukho metrics ngokuthe ngqo, i-algorithm ithatha isigqibo ngokusekwe kwizenzo zakho - ukuba ukhangele kangaphi kwaye ungakanani, ukongeza abantu), emva koko isiphumo sokukhangela. ziyakuthintelwa kwiinkangeleko zenkangeleko ezintathu, endaweni ye-1000 (okungagqibekanga kwamaphepha ali-100, iiprofayili ezili-10 ngephepha ngalinye). Umda usetwa kwakhona ekuqaleni kwenyanga nganye. Ngokwendalo,
Kodwa kungekudala, kwiprojekthi yesilwanyana, ndaqala ukudlala kakhulu nge-LinkedIn yokukhangela kwaye ngokukhawuleza ndafumana lo mda. Ngokwemvelo, andizange ndithande oku kakhulu, kuba andizange ndiyisebenzise nayiphi na injongo yezorhwebo, ngoko ke ingcamango yam yokuqala yayikukufunda umda kwaye ndizame ukujikeleza.
[Ingcaciso ebalulekileyo: izinto eziphathekayo kwinqaku zinikezelwa kuphela kwiinjongo zolwazi kunye nezemfundo. Umbhali akakhuthazi ukusetyenziswa kwabo ngeenjongo zorhwebo.]
Sifunda ingxaki
Sine: endaweni yeeprofayili ezilishumi ezinobumba, uphendlo lubuyisela ezintathu kuphela, emva koko ibhloko ene "recommendation" ye-akhawunti yeprimiyamu ifakiwe kwaye ngezantsi kukho iiprofayili ezifipheleyo nezingacofayo.
Ngoko nangoko, isandla sifikelela kumphuhlisi wekhonsoli ukuba ajonge ezi profayili zifihliweyo-mhlawumbi sinokususa ezinye izitayile ezingacacanga, okanye sikhuphe ulwazi kwibhloko kuphawulo. Kodwa, ngokulindelekileyo, ezi profayili zilungile
Kulungile, ngoku makhe sijonge iNethiwekhi isithuba kwaye sijonge ukuba ezinye iziphumo zophendlo ezibuyisela kuphela iiprofayile ezintathu ziyasebenza. Sifumana isicelo esinomdla kuso "/api/search/blended" kwaye sijonge impendulo.
Iiprofayili ziza kuluhlu `lubandakanyiweyo, kodwa sele kukho amaziko angama-15 kulo mzekelo, ezintathu zokuqala zizinto ezinolwazi olongezelelweyo, into nganye iqulethe ulwazi kwiprofayili ethile (umzekelo, ingaba iprofayili iyiprimiyamu. ).
I-12 elandelayo ziiprofayili zokwenyani - iziphumo zophendlo, apho ezintathu kuphela ziya kuboniswa kuthi. Njengoko sele uqikelele, ibonisa kuphela abo bafumana ulwazi olongezelelweyo (izinto ezintathu zokuqala). Umzekelo, ukuba uthatha impendulo kwiprofayili ngaphandle komda, uya kufumana amaziko angama-28 - izinto ezili-10 ezongezelelweyo. ulwazi kunye neeprofayili ezili-18.
Phendula iprofayile ngaphandle komda
Kutheni iiprofayili ezingaphezulu kwe-10 zifika, nangona ziceliwe, kwaye azithathi nxaxheba kumboniso nangayiphi na indlela, nakwiphepha elilandelayo aziyi kuba - Andazi okwangoku. Ukuba uhlalutya i-URL yesicelo, unokubona ukubala=10 (zingaphi iiprofayili ezibuyiselwayo kwimpendulo, ubuninzi be-10).
Ndingavuya ukufumana naziphi na izimvo ngalo mbandela.
Masizame
Kulungile, eyona nto ibalulekileyo ngoku siyazi ngokuqinisekileyo kukuba kukho iiprofayili ezininzi kwimpendulo kunokuba zisibonisa. Oku kuthetha ukuba sinokufumana idatha eninzi, nangona umda. Makhe sizame ukutsala i-API ngokwethu, ngokuthe ngqo kwi-console, sisebenzisa ukulandwa.
Njengoko kulindelekile, sifumana impazamo, 403. Oku kungenxa yokhuseleko, apha asithumeli uphawu lwe-CSRF (
Inokukhutshelwa kuso nasiphi na esinye isicelo esiphumeleleyo okanye kwiikuki, apho igcinwe kwindawo ethi 'JSESSIONID'.
Apho unokufumana khona umqondisoIsihloko sesinye isicelo:
Okanye kwiikuki, ngokuthe ngqo kwi-console:
Masizame kwakhona, ngeli xesha sigqithisa useto lokuzilanda, apho sichaza ithokheni yethu ye-csrf njengeparameter kwiheda.
Impumelelo, sifumana zonke iiprofayili ezili-10. :tada:
Ngenxa yomahluko kwizihloko, ubume bempendulo buhluke kancinane kwinto efunyenwe kwisicelo sokuqala. Ungafumana isakhiwo esifanayo ukuba wongeza 'Yamkela:' isicelo/vnd.linkedin.normalized+json+2.1' kwinto yethu, ecaleni kophawu lwecsrf.
Umzekelo impendulo enesihloko esongezelelweyo
Okungakumbi malunga nesihloko esithi Yamkela
Yintoni elandelayo?
Emva koko ungahlela (ngesandla okanye uzenzele) `ukuqala` iparamitha, yalathe kwisalathiso, ukuqala apho siyakunikwa iiprofayili ezili-10 (okwendalo = 0) kwisiphumo sonke sokukhangela. Ngamanye amazwi, ngokuyinyusa nge-10 emva kwesicelo ngasinye, sifumana imveliso eqhelekileyo yephepha-ngephepha, iiprofayili ezili-10 ngexesha.
Ngeli nqanaba ndinedatha eyaneleyo kunye nenkululeko yokuqhubeka nokusebenza kwiprojekthi yesilwanyana. Kodwa bekuya kuba sisono ukungazami ukubonisa le datha kanye kwindawo, ekubeni yayisele isesandleni. Asiyi kungena kwi-Ember, esetyenziswa ngaphambili. I-jQuery ibiqhagamshelwe kwindawo, kwaye emva kokumba ulwazi lwesiseko se-syntax kwimemori, unokwenza oku kulandelayo kwimizuzu embalwa.
ikhowudi yejQuery
/* ΡΠ΅Π½Π΄Π΅Ρ Π±Π»ΠΎΠΊΠ°, ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΈ Π²ΡΡΠ°Π²Π»ΡΠ΅ΠΌ Π±Π»ΠΎΠΊ Π² ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠΎΡΠΈΠ»Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ */
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="/xh/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="/xh/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;
Ukuba wenza oku ngokuthe ngqo kwikhonsoli kwiphepha lokukhangela, iyakongeza iqhosha elilayisha iiprofayili ezintsha ezili-10 ngonqakrazo ngalunye kwaye lizinike kuluhlu. Ewe kunjalo, tshintsha ithokheni kunye ne-URL kweyona ifunekayo ngaphambi kokwenza oku. Ibhloko yeprofayile iya kuqulatha igama, indawo, indawo, ikhonkco kwiprofayile kunye nomfanekiso wesibambi.
isiphelo
Ngaloo ndlela, ngomgudu omncinci, sakwazi ukufumana indawo ebuthathaka kwaye saphinda sakhangela ngaphandle kwemiqathango. Kwakwanele ukuhlalutya idatha kunye nendlela yayo, jonga kwisicelo ngokwayo.
Andikwazi ukuthetha ukuba le yingxaki enkulu kwi-LinkedIn, kuba ayifaki nayiphi na isongelo. Ubuninzi bulahlekile inzuzo ngenxa ye "workarounds" ezinjalo, ezikuvumela ukuba ugweme ukuhlawula i-premium. Mhlawumbi impendulo enjalo yomncedisi iyimfuneko ekusebenzeni okuchanekileyo kwezinye iindawo zesayithi, okanye nje ubuvila babaphuhlisi kunye nokungabikho kwemithombo engavumeli ukuba yenziwe kakuhle. (Isithintelo sivele ngoJanuwari 2015; ngaphambi koku kwakungekho mda).
PS
Ngokwendalo, ikhowudi yejQuery ngumzekelo wakudala wezakhono. Okwangoku ndenze ulwandiso lwebhrawuza ukuze luhambelane neemfuno zam. Yongeza amaqhosha okulawula kwaye inika iiprofayili ezipheleleyo kunye nemifanekiso, iqhosha lesimemo kunye noqhagamshelwano ngokubanzi. Ngaphezu koko, iqokelela ngamandla izihluzi zeendawo, iinkampani, kunye nezinye izinto, kwaye ifumana ithokheni kwiikuki. Ngoko ke akukho mfuneko yokuba hardcode nantoni na kwakhona. Ewe, yongeza iindawo zoseto ezongezelelweyo, elithi "zingaphi iiprofayili onokuzicela ngexesha, ukuya kuthi ga kwi-49."
Ndisasebenza kolu longezelelo kwaye ndiceba ukulukhuphela eluntwini. Bhala ukuba unomdla.
umthombo: www.habr.com