Python-ի և Requests գրադարանի հետ Web Crawler-ի մշակում
Նորությունների հոդվածներից և էլեկտրոնային առևտրի հարթակներից մինչև սոցիալական մեդիայի թարմացումներ և բլոգային գրառումներ, համացանցը արժեքավոր տվյալների գանձարան է: Այնուամենայնիվ, այս տեղեկատվությունը հավաքելու համար անթիվ վեբ էջերում ձեռքով նավարկելը ժամանակատար և հոգնեցուցիչ խնդիր է: Ահա թե որտեղ է վեբ սողալը գալիս:
Ի՞նչ է վեբ սողալը:
Վեբ սողալը, որը նաև հայտնի է որպես վեբ գրություն, տեխնիկա է, որն օգտագործվում է կայքերից տվյալներ համակարգված զննելու և հանելու համար: Այն ներառում է սցենար կամ ծրագիր գրել, որն ավտոմատ կերպով այցելում է վեբ էջեր, հետևում է հղումներին և հավաքում համապատասխան տվյալներ հետագա վերլուծության համար: Այս գործընթացը կարևոր է տարբեր հավելվածների համար, ինչպիսիք են վեբ ինդեքսավորումը, տվյալների արդյունահանումը և բովանդակության համախմբումը:
Python-ն իր պարզությամբ և բազմակողմանիությամբ դարձել է ծրագրավորման ամենատարածված լեզուներից մեկը վեբ սողացող առաջադրանքների համար: Գրադարանների և շրջանակների հարուստ էկոհամակարգը ծրագրավորողներին տալիս է հզոր գործիքներ՝ արդյունավետ և ամուր վեբ սողիկներ ստեղծելու համար: Այդպիսի գրադարաններից է հարցումների գրադարանը:
Python-ը պահանջում է գրադարան
Հարցումների գրադարանը լայնորեն օգտագործվող Python գրադարան է, որը հեշտացնում է HTTP հարցումների ուղարկման և վեբ էջերի հետ փոխգործակցության գործընթացը: Այն ապահովում է ինտուիտիվ ինտերֆեյս՝ վեբ սերվերներին հարցումներ կատարելու և պատասխանները մշակելու համար:
Ընդամենը մի քանի տող կոդով դուք կարող եք առբերել վեբ բովանդակությունը, արդյունահանել տվյալներ և կատարել տարբեր գործողություններ առբերված տեղեկատվության վրա:
Սկսել
Սկսելու համար, եկեք ապահովենք, որ մենք ունենք հարցումների գրադարանը տեղադրված: Մենք կարող ենք հեշտությամբ տեղադրել այն՝ օգտագործելով pip՝ Python փաթեթների կառավարիչը:
Բացեք ձեր տերմինալը կամ հրամանի տողը և մուտքագրեք հետևյալ հրամանը.
pip install requests
Տեղադրված հարցումների գրադարանով մենք պատրաստ ենք խորանալ հիմնական բովանդակության մեջ և սկսել զարգացնել մեր վեբ սողունը:
Քայլ 1. Պահանջվող գրադարանների ներմուծում
Սկսելու համար մենք պետք է ներմուծենք հարցումների գրադարանը, որը մեզ հնարավորություն կտա ուղարկել HTTP հարցումներ և առբերել վեբ էջի տվյալները: Մենք կներմուծենք նաև այլ անհրաժեշտ գրադարաններ տվյալների մանիպուլյացիայի և վերլուծության համար:
import requests
from bs4 import BeautifulSoup
Քայլ 2. GET հարցում ուղարկելը
Վեբ սողալու առաջին քայլը վեբ էջին GET հարցում ուղարկելն է: Մենք կարող ենք օգտագործել հարցումների գրադարանի get() ֆունկցիան՝ վեբ էջի HTML բովանդակությունը առբերելու համար:
url = "https://example.com"
response = requests.get(url)
Քայլ 3. HTML բովանդակության վերլուծություն
Երբ մենք ունենք HTML բովանդակություն, մենք պետք է այն վերլուծենք՝ համապատասխան տեղեկատվությունը հանելու համար: BeautifulSoup գրադարանն ապահովում է HTML-ը վերլուծելու և դրա տարրերով նավարկելու հարմար միջոց:
soup = BeautifulSoup(response.text, "html.parser")
Քայլ 4. տվյալների արդյունահանում
Վերլուծված HTML-ի միջոցով մենք այժմ կարող ենք արդյունահանել ցանկալի տվյալները: Սա կարող է ներառել կոնկրետ տարրերի տեղորոշում, տեքստի արդյունահանում, հատկանիշի արժեքների առբերում և այլն:
# Find all <a> tags
links = soup.find_all("a")
# Extract href attribute values
for link in links:
href = link.get("href")
print(href)
Քայլ 5. Բազմաթիվ էջերի սողում
Շատ դեպքերում մենք ցանկանում ենք, որ մեր վեբ սողունը նավարկի բազմաթիվ էջերի միջով՝ հետևելով հղումներին: Մենք կարող ենք հասնել դրան՝ կրկնելով արդյունահանված հղումները և կրկնելով գործընթացը յուրաքանչյուր էջի համար:
for link in links:
href = link.get("href")
if href.startswith("http"):
response = requests.get(href)
# Continue processing the page
Օրինակ
Ահա մի պարզ վեբ սողացողի օրինակ, որը հանում և տպում է «href» հատկանիշի բոլոր արժեքները վեբ էջից: Կոդը ցույց է տալիս Python-ի, հարցումների գրադարանի և BeautifulSoup-ի անխափան ինտեգրումը ֆունկցիոնալ վեբ սողուն մշակելու համար: Փոփոխելով կոդը և կիրառելով լրացուցիչ տեխնիկա՝ դուք կարող եք հարմարեցնել վեբ սողունը՝ ձեր հատուկ պահանջներին համապատասխան:
import requests
from bs4 import BeautifulSoup
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
links = soup.find_all("a")
for link in links:
href = link.get("href")
print(href)
Այն կստեղծի հետևյալ արդյունքը.
/
/contact
/about
Եզրակացություն
Եզրափակելով, Python-ի և հարցումների գրադարանի միջոցով վեբ սողալը ձեզ հնարավորություն է տալիս ուսումնասիրել ինտերնետի հսկայական աշխարհը և արժեքավոր տվյալներ կորզել: Ավտոմատացնելով վեբ էջերում նավարկելու գործընթացը, հետևելով հղումներին և տեղեկատվության արդյունահանմանը, վեբ սողունները խնայում են ժամանակ և ջանք տվյալների հավաքագրման և վերլուծության առաջադրանքներում: Այնուամենայնիվ, կարևոր է հաշվի առնել կայքի ծառայության պայմանները, հարգել վեբկայքի քաղաքականությունը և խուսափել սերվերների գերծանրաբեռնվածությունից չափազանց մեծ հարցումներով: