Tādi lasītāji kā jūs palīdz atbalstīt MUO. Veicot pirkumu, izmantojot saites mūsu vietnē, mēs varam nopelnīt filiāles komisiju. Lasīt vairāk.

Ir vairākas Python bibliotēkas un ietvari, lai iegūtu datus no tīmekļa. Ikviens sāk ar konkrētu rīku, līdz saprot, ka tas varētu nebūt vislabāk piemērots viņu nākamajam projektam. Lai gan ir maz ticams, ka vienā projektā izmantosit visus Python rīkus, jums vajadzētu zināt, kurus no tiem paturēt savā tīmekļa kopēšanas rīklodziņā.

Šeit ir labākās Python bibliotēkas, ietvari un citi rīki, kas palīdzēs bez piepūles iegūt datus no tīmekļa.

1. Skaista zupa

Sākot no saraksta ar labāko tīmekļa skrāpēšanas bibliotēku iesācējiem: Skaista zupa. Tas būtībā ir rīks, kas iegūst datus no parsētiem HTML un XML failiem, pārveidojot dokumentu Python objektā.

Skaistās zupas "skaistums" slēpjas tās vienkāršībā. To ir viegli iestatīt, un jūs varat sāciet ar savu pirmo tīmekļa skrāpēšanas projektu minūšu laikā. Skaista zupa izmanto hierarhisku pieeju datu ieguvei no HTML dokumenta. Varat izvilkt elementus, izmantojot tagus, klases, ID, nosaukumus un citus HTML atribūtus.

instagram viewer

Tomēr gaidīt vairāk no Beautiful Soup būtu pārāk tālu. Nav iebūvēta atbalsta starpprogrammatūrai un citām uzlabotām funkcijām, piemēram, starpniekservera rotācijai vai vairāku pavedienu izveidei. Izmantojot Beautiful Soup, jums ir nepieciešamas bibliotēkas, lai nosūtītu HTTP pieprasījumus, parsētu lejupielādēto dokumentu un eksportētu izkopto informāciju uz izvades failu.

2. pieprasījumus

pieprasījumi neapšaubāmi ir visvairāk izmantotā Python bibliotēka HTTP pieprasījumu apstrādei. Šis rīks atbilst tā aprakstam: HTTP for Humans™. Tā atbalsta vairākus HTTP pieprasījumu veidus, sākot no GET un POST līdz PATCH un DELETE. Turklāt jūs varat kontrolēt gandrīz visus pieprasījuma aspektus, tostarp galvenes un atbildes.

Ja tas izklausās vienkārši, esiet drošs, jo pieprasījumi ir paredzēti arī pieredzējušiem lietotājiem ar daudzām funkcijām. Varat apspēlēt pieprasījumu un pielāgot tā galvenes, augšupielādēt failu serverī, izmantojot POST, un cita starpā apstrādāt taimautus, novirzīšanu un sesijas.

pieprasījumi parasti tiek saistīti ar Beautiful Soup, kad runa ir par tīmekļa skrāpēšanu, jo citos Python ietvaros ir iebūvēts atbalsts HTTP pieprasījumu apstrādei. Lai iegūtu tīmekļa lapas HTML, izmantojiet pieprasījumus, lai serverim nosūtītu GET pieprasījumu, pēc tam no atbildes izvilktu teksta datus un nodotu tos vietnei Beautiful Soup.

3. Skrapis

Kā norāda nosaukums, Scrapy ir Python sistēma liela mēroga tīmekļa skrāpju izstrādei. Tas ir Šveices armijas nazis datu iegūšanai no tīmekļa. Scrapy apstrādā visu, sākot no pieprasījumu nosūtīšanas un starpniekserveru ieviešanas līdz datu ieguvei un eksportēšanai.

Atšķirībā no Beautiful Soup, Scrapy patiesais spēks ir tā izsmalcinātais mehānisms. Bet neļaujiet šai sarežģītībai jūs iebiedēt. Scrapy ir visefektīvākais tīmekļa skrāpēšanas ietvars šajā sarakstā ātruma, efektivitātes un funkciju ziņā. Tas ir aprīkots ar atlasītājiem, kas ļauj atlasīt datus no HTML dokumenta, izmantojot XPath vai CSS elementus.

Papildu priekšrocība ir ātrums, ar kādu Scrapy nosūta pieprasījumus un izvelk datus. Tas nosūta un apstrādā pieprasījumus asinhroni, un tas to atšķir no citiem tīmekļa skrāpēšanas rīkiem.

Papildus pamata funkcijām jūs saņemat arī atbalstu starpprogrammatūrai, kas ir āķu sistēma, kas nodrošina papildu funkcionalitāti noklusējuma Scrapy mehānismam. Jūs nevarat nokasīt JavaScript vadītas vietnes, izmantojot Scrapy, taču varat izmantot starpprogrammatūru, piemēram, scrapy-selenium, scrapy-splash un scrapy-scrapingbee, lai ieviestu šo funkcionalitāti savā projektā.

Visbeidzot, kad esat pabeidzis datu izvilkšanu, varat tos eksportēt dažādos failu formātos; CSV, JSON un XML, lai nosauktu tikai dažus.

Scrapy ir viens no daudzajiem iemesliem, kāpēc Python ir labākā programmēšanas valoda ikvienam, kas nodarbojas ar tīmekļa skrāpēšanu. Sava pirmā Scrapy projekta iestatīšana var aizņemt kādu laiku, it īpaši, ja jums nav pieredzes ar Python klasēm un ietvariem. Scrapy darbplūsma ir sadalīta vairākos failos, un iesācējiem tas var izpausties kā nevēlama sarežģītība.

4. Selēns

Ja vēlaties iegūt dinamisku, JavaScript renderētu saturu, selēns ir tas, kas jums nepieciešams. Kā starpplatformu tīmekļa testēšanas ietvars Selenium palīdz atveidot HTML, CSS un JavaScript un iegūt nepieciešamo. Varat arī atdarināt reālu lietotāja mijiedarbību, izmantojot stingras kodēšanas tastatūras un peles darbības, kas pilnībā maina spēli.

Selēns izveido pārlūkprogrammas gadījumu, izmantojot tīmekļa draiveri, un ielādē lapu. Dažas populāras pārlūkprogrammas, ko atbalsta Selenium, ir Google Chrome, Mozilla Firefox, Opera, Microsoft Edge, Apple Safari un Internet Explorer. Tajā tiek izmantoti CSS un XPath lokatori, līdzīgi kā Scrapy atlasītāji, lai lapā atrastu un izvilktu saturu no HTML elementiem.

Ja jums nav pieredzes darbā ar Python, bet zināt citas programmēšanas valodas, varat izmantot Selenium ar C#, JavaScript, PHP, Perl, Ruby un Java.

Vienīgais ierobežojums ir tas, ka Selenium fonā palaiž tīmekļa pārlūkprogrammu, ievērojami palielinās skrāpja izpildei nepieciešamie resursi, salīdzinājumā ar Scrapy vai Beautiful Soup. Taču, ņemot vērā Selēna piedāvātās papildu funkcijas, tas ir pilnībā pamatoti.

5. urllib

Python urllib bibliotēka ir vienkāršs, taču būtisks rīks, kas ir pieejams jūsu tīmekļa kopēšanas arsenālā. Tas ļauj apstrādāt un apstrādāt URL jūsu Python skriptos.

Piemērots praktisks urllib pielietojums ir URL modifikācija. Apsveriet, ka veidojat vietni ar vairākām lapām un, lai pārietu uz nākamo lapu, ir jāmaina daļa URL.

urllib var palīdzēt parsēt URL un sadalīt to vairākās daļās, kuras pēc tam varat modificēt un atsaparēt, lai izveidotu jaunu URL. Lai gan bibliotēkas izmantošana virkņu parsēšanai varētu šķist pārspīlēta, urllib ir glābiņš cilvēkiem, kuri prieka pēc kodē tīmekļa skrāpjus un nevēlas iedziļināties datu struktūrās.

Turklāt, ja vēlaties pārbaudīt vietnes failu robots.txt, kas ir teksta fails, kurā ir Google rāpuļprogrammas un citu skrāpju piekļuves noteikumi, urllib var jums palīdzēt arī šajā jautājumā. Ieteicams sekot vietnes failam robots.txt un nokasīt tikai tās lapas, kuras ir atļautas.

6. JSON, CSV un XML bibliotēkas

Tā kā ierīcēm Beautiful Soup vai Selenium nav iebūvētu datu eksportēšanas funkciju, jums ir nepieciešama Python bibliotēka, lai eksportēt datus JSON, CSV vai XML failu. Par laimi, ir daudz bibliotēku, ko varat darīt, lai to panāktu, un ir ieteicamas visvienkāršākās bibliotēkas, proti, json, csv un xml attiecīgi JSON, CSV un XML failiem.

Šādas bibliotēkas ļauj izveidot failu, pievienot tam datus un pēc tam eksportēt failu uz vietējo krātuvi vai attālo serveri.

7. Mehāniskā zupa

Mehāniskā zupa? Vai šī ir lēta skaista zupa? Nē. Iedvesmojoties no Mehanizēt un, pamatojoties uz Python pieprasījumiem un Beautiful Soup, MechanicalSoup palīdz automatizēt cilvēku uzvedību un iegūt datus no tīmekļa lapas. Varat to uzskatīt par pusceļu starp Skaisto zupu un Selēnu. Vienīgais loms? Tas neapstrādā JavaScript.

Lai gan nosaukumi ir līdzīgi, MechanicalSoup sintakse un darbplūsma ir ļoti atšķirīgas. Jūs izveidojat pārlūkprogrammas sesiju, izmantojot MechanicalSoup, un, kad lapa tiek lejupielādēta, jūs izmantojat Beautiful Soup metodes, piemēram, atrast () un atrast_visu() lai iegūtu datus no HTML dokumenta.

Vēl viena iespaidīga MechanicalSoup iezīme ir tā, ka tā ļauj aizpildīt veidlapas, izmantojot skriptu. Tas ir īpaši noderīgi, ja jums ir jāievada kaut kas laukā (piemēram, meklēšanas joslā), lai nokļūtu lapā, kuru vēlaties nokasīt. MechanicalSoup pieprasījumu apstrāde ir lieliska, jo tā var automātiski apstrādāt novirzīšanu un sekot saitēm lapā, tādējādi ietaupot jums pūles, manuāli kodējot sadaļu, lai to paveiktu.

Tā kā tās pamatā ir Skaistā zupa, abu šo bibliotēku trūkumi ievērojami pārklājas. Piemēram, nav iebūvētas metodes datu izvadei, starpniekservera rotācijai un JavaScript renderēšanai. Vienīgā skaistās zupas problēma, ko MechanicalSoup ir novērsusi, ir atbalsts pieprasījumu apstrādei, kas ir atrisināts, kodējot Python pieprasījumu bibliotēkas iesaiņojumu.

Tīmekļa skrāpēšana Python ir kļuvusi vienkāršāka

Python, bez šaubām, ir jaudīga programmēšanas valoda tīmekļa izkopšanai, taču izmantotie rīki ir tikai daļa no problēmas. Visredzamākā problēma, ar kuru cilvēki saskaras, kodējot skrāpi, ir HTML dokumentu hierarhijas apgūšana.

Ja vēlaties izstrādāt uzlabotus tīmekļa skrāpjus, jums ir jāizprot tīmekļa lapas struktūra un jāzina, kā ātri atrast elementu.