Semalt mutaxassisi: Python va BeautifulSoup. Scrape saytlari qulaylik bilan

Ma'lumotlar tahlili yoki mashinalarni o'rganish bo'yicha loyihalarni amalga oshirayotganda, kerakli ma'lumotlarni olish va loyihangizni bajarish uchun veb-saytlarni qirib tashlashingiz kerak bo'lishi mumkin. Python dasturlash tili ushbu maqsadda ishlatilishi mumkin bo'lgan kuchli vositalar va modullar to'plamiga ega. Masalan, siz HTMLni tahlil qilish uchun BeautifulSoup modulidan foydalanishingiz mumkin.

Bu erda biz BeautifulSoup-ni ko'rib chiqamiz va nima uchun hozirda veb tarashda keng qo'llanilayotganligini bilib olamiz.

BeautifulSoup xususiyatlari

- U oson navigatsiya, sintez daraxtlarini qidirish va o'zgartirish uchun turli xil usullarni taqdim etadi, shu bilan siz juda ko'p kod yozmasdan kerakli hujjatni osongina ajratib olishingiz va kerakli narsalarni olishingiz mumkin.

- UTF-8-ga chiquvchi hujjatlarni va kiruvchi hujjatlarni avtomatik ravishda Unicode-ga o'zgartiradi. Bu shuni anglatadiki, agar hujjatda kodlash yoki go'zal sho'rva uni avtomatik ravishda aniqlashi mumkin bo'lsa, kodlash haqida tashvishlanmaysiz.

- BeautifulSoup html5lib va lxml kabi boshqa mashhur Python tahlilchilaridan ustun hisoblanadi. Bu har xil tahlil qilish strategiyalarini sinab ko'rish imkonini beradi. Ushbu modulning yana bir kamchiligi shundaki, u tezlik hisobiga ko'proq moslashuvchanlikni ta'minlaydi.

BeautifulSoup bilan veb-saytni qirqish uchun nima kerak?

BeautifulSoup bilan ishlashni boshlash uchun siz kompyuteringizda Python dasturiy muhitini (mahalliy yoki serverga asoslangan) o'rnatishingiz kerak. Python odatda OS X-da oldindan o'rnatilgan, ammo agar siz Windows-dan foydalansangiz, rasmiy veb-saytdan tilni yuklab olishingiz va o'rnatishingiz kerak bo'ladi.

Sizda BeautifulSoup va Requests modullari o'rnatilgan bo'lishi kerak.

Va nihoyat, HTML yorlig'i va tuzilishi bilan tanish va qulay ishlash, shubhasiz, foydalidir, chunki siz veb-manbali ma'lumotlar bilan ishlaysiz.

Talablarni va BeautifulSoup kutubxonalarini import qilish

Python dasturlash muhiti yaxshi sozlangan, endi siz xohlagan nom bilan yangi faylni (masalan, nano-dan foydalanib) yaratishingiz mumkin.

So'rovlar kutubxonasi sizga Python dasturlarida HTTP-ni o'qiydigan shakldan foydalanishga imkon beradi, BeautifulSoup esa tezroq qirqishni amalga oshiradi. Ikkala kutubxonani olish uchun siz import bayonotidan foydalanishingiz mumkin.

Qanday qilib veb-sahifani to'plash va tahlil qilish

Ma'lumotlar olishni istagan veb-sahifaning URL manzilini to'plash uchun request.get () usulidan foydalaning. Keyinchalik, BeautifulSoup ob'ekti yoki satr daraxti yarating. Ushbu ob'yekt hujjatni o'z talablari sifatida hujjat sifatida oladi va uni tahlil qiladi. BeautifulSoup ob'ekti sifatida to'plangan, sintaktik tahlil qilingan va sozlangan sahifa yordamida kerakli ma'lumotlarni to'plashni davom ettirishingiz mumkin.

Talab qilingan matnni sintaktik veb-sahifadan ajratib olish

Har doim veb-ma'lumotlarni to'plashni istaganingizda, ushbu ma'lumot veb-sahifaning Document Object Model (DOM) tomonidan qanday tasvirlanganligini bilishingiz kerak. O'zingizning veb-brauzeringizda sichqonchaning o'ng tugmachasini (agar Windows-dan foydalansangiz) yoki CTRL + chertish (agar MacOS-dan foydalansangiz) ma'lumotlarning bir qismini tashkil etadigan narsalardan birini bosing. Masalan, agar siz talabalarning millati to'g'risida ma'lumot olishni istasangiz, talabaning ismlaridan birini bosing. Kontekst menyusi ochiladi va uning ichida siz Elementni tekshirish (Firefox uchun) yoki Inspect (Chrome uchun) ga o'xshash menyu elementini ko'rasiz. Tegishli Inspect menyu bandini bosing va brauzeringizda veb-ishlab chiqaruvchi vositalar paydo bo'ladi.

BeautifulSoup - bu oddiy, ammo kuchli HTML tahlil qilish vositasi bo'lib, veb-saytlarni qirib tashlaganingizda sizga juda moslashuvchan bo'lishga imkon beradi. Undan foydalanganda, veb-saytning shartlari va qoidalarini tekshirish kabi qirqish qoidalariga rioya qilishni unutmang; doimiy ravishda saytga tashrif buyurish va saytdagi o'zgarishlarga muvofiq kodingizni yangilash. Python va BeautifulSoup yordamida veb-saytlarni qirqish haqida bu ma'lumotga ega bo'lganingiz uchun endi o'zingizning loyihangiz uchun kerak bo'lgan veb-ma'lumotlarni osongina olishingiz mumkin.