Semalt Эксперт Python'дун жардамы менен AJAX веб-сайтын кандайча скрепинг кылууну түшүндүрөт

Веб кыргыч - бул веб-баракчадан маалыматтарды алуу үчүн программалык камсыздоону пайдаланган ыкма. Интернетте питон менен кыртыш үчүн колдонула турган көптөгөн куралдар бар, алардын айрымдары; Асман, сыныктар, сурамдар жана сонун шорпо. Бирок, бул куралдардын көпчүлүгү JavaScript тарабынан көрсөтүлгөн динамикалык бөлүктү эмес, серверден келген статикалык HTMLди гана ала тургандыгы менен чектелген.

Бирок, бул көйгөйдү жеңүүнүн бир нече ыкмалары бар:

1. Автоматташтырылган браузерлер

Selenium же Splash сыяктуу автоматташтырылган браузерлерди колдонсоңуз болот, алар толук иштебейт. Бирок, аларды орнотуу бир топ татаал болушу мүмкүн, андыктан төмөндөгү экинчи вариантка токтолобуз.

2. AJAX чалууларды тосуу

Бул AJAX чалууларын барактан тартып алууга жана аларды кайра ойнотууга же кайра чыгарууга аракет кылууну камтыйт.

Бул макалада биз AJAX чалууларын кантип кармап, аларды кантип ойнотууга боло тургандыгын Сурамдар китепканасы жана Google Chrome браузерин колдонуп талкуулайбыз. Скрапи сыяктуу алкактар кыртышка байланыштуу натыйжалуу чечим табууга жардам берсе да, бардык учурларда бул талап кылынбайт. AJAX чалуулары көбүнчө API'ге каршы жүргүзүлөт, ал JSON объектисин кайтарып берет, ал Сурамдар китепканасы оңой иштей берет.

Биринчи нерсени билишиңиз керек: AJAX чалууну кайра ойнотууга аракет кылуу, документсиз API колдонуу сыяктуу. Андыктан сиз чакырган баракчалардын бардыгын карап чыгышыңыз керек. Сиз сайтка кирип, анда-санда ойноп, маалыматтын кандайча берилгенин көрө аласыз. Сиз ойноп бүткөндөн кийин, кайтып келип, кыргычты баштаңыз.

Чоо-жайын билүүдөн мурун, адегенде барак кантип иштээрин түшүнүп алалы. Эгер дүкөндөрдүн баракчасына көз чаптырсаңыз, каалаган абалды тандаңыз, баракча дүкөндө маалымат берет. Кандайдыр бир абалды тандаган сайын, веб-сайт эски дүкөндөрдүн ордуна жаңы дүкөндөрдү сунуштайт. Буга жетишип, AJAX серверден маалымат сурап чалсаңыз болот. Азыр биздин максатыбыз - ошол чалууну угуп, аны кайра ойнотуу.

Ал үчүн, Chrome DevTools браузерин ачып, XHR бөлүмүнө өтүңүз. XHR бул HTTP жана HTTPS сурамдарын аткарган интерфейс. Ошентип, AJAX сурамдары бул жерде көрсөтүлөт. AJAX чалууну эки жолу чыкылдатканда, дүкөндөрдөн көп маалымат таба аласыз. Сиз ошондой эле сурамдарды алдын-ала көрө аласыз.

Серверге көптөгөн маалыматтар жөнөтүлүп жаткандыгын байкайсыз. Бирок, тынчсызданбаңыз, анткени анын бардыгы эле талап кылынбайт. Сизге кандай маалымат керек экендигин көрүү үчүн, консолун ачып, веб-сайтка ар кандай почта сурамдарын жасай аласыз. Барактын кандайча иштээрин билип, AJAX чалуусун чечип алгандан кийин, кыргычты жазсаңыз болот.

Сиз "эмне үчүн автоматташтырылган браузерди колдонбойсуз?" Деп сурап жатасыз. Чечим жөнөкөй; Автоматтык браузер сыяктуу бир топ оор жана татаал нерсени баштаардан мурун, ар дайым AJAX чалууларын кайталап көрүңүз. Ал жөнөкөй жана жеңилирээк.

PNG