ProHoster > Blog > Ma'muriyat > API bilan o'ynash orqali LinkedIn qidiruv chegarasini chetlab o'tish
API bilan o'ynash orqali LinkedIn qidiruv chegarasini chetlab o'tish
Cheklov
LinkedIn-da bunday cheklov mavjud - Tijoriy foydalanish chegarasi. Ehtimol, siz ham, men kabi, yaqin vaqtgacha buni hech qachon uchratmagan yoki eshitmagansiz.
Cheklovning mohiyati shundaki, agar siz kontaktlaringizdan tashqaridagi odamlarni qidirishdan juda tez-tez foydalansangiz (aniq ko'rsatkichlar yo'q, algoritm sizning harakatlaringiz asosida qaror qiladi - qanchalik tez-tez va qancha qidirganingiz, odamlarni qo'shganingiz), keyin qidiruv natijasi 1000 o'rniga uchta profil bilan cheklanadi (standart 100 sahifa, har bir sahifaga 10 profil). Limit har oyning boshida tiklanadi. Tabiiyki, premium hisoblarda bu cheklov yo'q.
Ammo yaqinda uy hayvonlari loyihasi uchun men LinkedIn qidiruvi bilan ko'p o'ynay boshladim va to'satdan bu cheklovni oldim. Tabiiyki, bu menga unchalik yoqmadi, chunki men undan hech qanday tijorat maqsadlarida foydalanmaganman, shuning uchun birinchi o'ylaganim cheklovni o'rganish va undan chiqishga harakat qilish edi.
[Muhim tushuntirish: maqoladagi materiallar faqat ma'lumot va ta'lim maqsadlarida taqdim etilgan. Muallif ulardan tijorat maqsadlarida foydalanishni rag'batlantirmaydi.]
Biz muammoni o'rganmoqdamiz
Bizda bor: sahifalash bilan o'nta profil o'rniga, qidiruv faqat uchtasini qaytaradi, shundan so'ng premium hisob qaydnomasining "tavsiyalari" bo'lgan blok qo'shiladi va quyida loyqa va bosilmaydigan profillar mavjud.
Darhol, qo'l ushbu yashirin profillarni ko'rish uchun dasturchi konsoliga uzatiladi - ehtimol biz ba'zi xiralashgan uslublarni olib tashlashimiz yoki belgilashdagi blokdan ma'lumot olishimiz mumkin. Ammo, kutilgandek, bu profillar shunchaki to'ldiruvchi rasmlar va hech qanday ma'lumot saqlanmaydi.
Xo'sh, endi "Tarmoq" yorlig'ini ko'rib chiqamiz va faqat uchta profilni qaytaradigan muqobil qidiruv natijalari haqiqatan ham ishlayotganligini tekshiramiz. Biz β/api/search/blendedβ uchun bizni qiziqtirgan soβrovni topamiz va javobga qaraymiz.
Profillar "qo'shilgan" massivda bo'ladi, lekin unda allaqachon 15 ta ob'ekt mavjud. Bu holda, ularning dastlabki uchtasi qo'shimcha ma'lumotga ega bo'lgan ob'ektlardir, har bir ob'ekt ma'lum bir profil haqida ma'lumotni o'z ichiga oladi (masalan, profil premiummi yoki yo'qmi). ).
Keyingi 12 tasi haqiqiy profillar - qidiruv natijalari, ulardan faqat uchtasi bizga ko'rsatiladi. Siz allaqachon taxmin qilganingizdek, u faqat qo'shimcha ma'lumot olganlarni ko'rsatadi (birinchi uchta ob'ekt). Misol uchun, agar siz javobni cheksiz profildan olsangiz, siz 28 ta ob'ektni olasiz - qo'shimcha 10 ob'ekt. ma'lumot va 18 ta profil.
Cheksiz profil uchun javob
Nega 10 dan ortiq profil keladi, garchi aniq 10 tasi so'ralgan bo'lsa-da va ular hech qanday tarzda namoyishda qatnashmaydi, hatto keyingi sahifada ham ular bo'lmaydi - men hali bilmayman. Agar so'rov URL-manzilini tahlil qilsangiz, siz bu raqamni ko'rishingiz mumkin=10 (javobda qancha profil qaytarilishi kerak, maksimal 49).
Men bu masala bo'yicha har qanday sharhni olishdan xursand bo'lardim.
Keling, tajriba qilaylik
Xo'sh, biz hozir aniq biladigan eng muhim narsa shundaki, javobda bizga ko'rsatganidan ko'ra ko'proq profillar mavjud. Bu chegaraga qaramay, ko'proq ma'lumot olishimiz mumkinligini anglatadi. Keling, fetch yordamida APIni o'zimiz to'g'ridan-to'g'ri konsoldan tortib olishga harakat qilaylik.
Kutilganidek, biz xatoga yo'l qo'ydik, 403. Bu xavfsizlik tufayli, bu erda biz CSRF tokenini yubormayapmiz (Vikipediyadagi CSRF. Xulosa qilib aytganda, har bir so'rovga serverda haqiqiyligi tekshiriladigan noyob token qo'shiladi).
U har qanday boshqa muvaffaqiyatli soΚ»rovdan yoki βJSESSIONIDβ maydonida saqlanadigan cookie-fayllardan koΚ»chirilishi mumkin.
Tokenni qayerdan topish mumkinBoshqa so'rovning sarlavhasi:
Yoki cookie-fayllardan, to'g'ridan-to'g'ri konsol orqali:
Keling, yana urinib ko'ramiz, bu safar biz olish uchun sozlamalarni o'tkazamiz, bunda biz sarlavhada parametr sifatida csrf-tokenimizni belgilaymiz.
Muvaffaqiyatli, biz barcha 10 ta profilni olamiz. :tada:
Sarlavhalardagi farq tufayli javobning tuzilishi asl so'rovda olinganidan biroz farq qiladi. Ob'ektimizga csrf tokeni yoniga "Qabul qilaman: 'application/vnd.linkedin.normalized+json+2.1" ni qo'shsangiz, xuddi shunday tuzilishga ega bo'lishingiz mumkin. Sarlavha qo'shilgan javobga misol
Keyin indeksga ishora qilib, `start` parametrini tahrirlashingiz (qo'lda yoki avtomatlashtirishingiz) mumkin, shundan boshlab bizga butun qidiruv natijasidan 10 ta profil (standart = 0) beriladi. Boshqacha qilib aytadigan bo'lsak, har bir so'rovdan keyin uni 10 ga oshirib, biz bir vaqtning o'zida 10 ta profilga ega bo'lamiz.
Ushbu bosqichda menda uy hayvonlari loyihasi ustida ishlashni davom ettirish uchun etarli ma'lumotlar va erkinlik bor edi. Ammo bu ma'lumotlarni joyida ko'rsatishga urinmaslik gunoh bo'lar edi, chunki u allaqachon qo'lda edi. Biz old tomondan ishlatiladigan Emberga kirmaymiz. jQuery saytga ulangan va xotirada asosiy sintaksis bo'yicha bilimlarni qazib olib, siz bir necha daqiqada quyidagilarni yaratishingiz mumkin.
Agar siz buni to'g'ridan-to'g'ri qidiruv sahifasidagi konsolda qilsangiz, u har bir bosish bilan 10 ta yangi profilni yuklaydigan va ularni ro'yxatda ko'rsatadigan tugmani qo'shadi. Albatta, buni amalga oshirishdan oldin token va URL manzilini keraklisiga o'zgartiring. Profil blokida ism, joylashuv, joylashuv, profilga havola va joy ushlagich tasviri mavjud.
xulosa
Shunday qilib, biz minimal harakat bilan zaif nuqtani topdik va hech qanday cheklovlarsiz qidiruvimizni tikladik. Ma'lumotlar va uning yo'lini tahlil qilish, so'rovning o'ziga qarash kifoya edi.
Bu LinkedIn uchun jiddiy muammo deb ayta olmayman, chunki u hech qanday xavf tug'dirmaydi. Maksimal - bunday "vaqtinchalik echimlar" tufayli yo'qolgan foyda, bu sizga mukofotni to'lashdan qochish imkonini beradi. Ehtimol, bunday server javobi saytning boshqa qismlarining to'g'ri ishlashi uchun zarurdir yoki bu shunchaki ishlab chiquvchilarning dangasaligi va uni yaxshi bajarishga imkon bermaydigan resurslarning etishmasligi. (Cheklov 2015 yil yanvar oyida paydo bo'lgan; bundan oldin hech qanday cheklov yo'q edi).
PS
Tabiiyki, jQuery kodi imkoniyatlarning juda oddiy namunasidir. Ayni paytda men ehtiyojlarimga mos keladigan brauzer kengaytmasini yaratdim. U boshqaruv tugmalarini qo'shadi va rasmlar, taklifnoma tugmasi va umumiy ulanishlar bilan to'liq profillarni ko'rsatadi. Bundan tashqari, u joylar, kompaniyalar va boshqa narsalar uchun filtrlarni dinamik ravishda to'playdi va cookie-fayllardan token oladi. Shunday qilib, endi hech narsani qattiq kodlashning hojati yo'q. Xo'sh, u qo'shimcha sozlamalar maydonlarini qo'shadi, ya'ni "bir vaqtning o'zida qancha profil so'rash kerak, 49 tagacha."
Men hali ham ushbu qo'shimcha ustida ishlayapman va uni ommaga taqdim etishni rejalashtirmoqdaman. Agar qiziqsangiz yozing.