Kaltaisesi lukijat auttavat tukemaan MUO: ta. Kun teet ostoksen käyttämällä sivustollamme olevia linkkejä, voimme ansaita kumppanipalkkion. Lue lisää.

Haluatko oppia verkkokaappausta Pythonilla, mutta olet hämmentynyt siitä, käytätkö Beautiful Soupia, Seleeniä vai Scrapyä seuraavassa projektissasi? Vaikka kaikki nämä Python-kirjastot ja -kehykset ovat itsessään tehokkaita, ne eivät vastaa kaikki verkon kaavintatarpeet, ja siksi on tärkeää tietää, mitä työkalua sinun tulee käyttää tiettyyn tarkoitukseen Job.

Katsotaanpa eroja Beautiful Soupin, Scrapyn ja Seleniumin välillä, jotta voit tehdä viisaan päätöksen ennen seuraavan Python-verkkokaappausprojektin aloittamista.

1. Helppokäyttöisyys

Jos olet aloittelija, ensimmäinen vaatimuksesi on kirjasto, joka on helppo oppia ja käyttää. Beautiful Soup tarjoaa sinulle kaikki alkeelliset työkalut, joita tarvitset verkon kaapimiseen, ja se on erityisesti hyödyllinen ihmisille, joilla on vain vähän kokemusta Pythonista, mutta jotka haluavat päästä liikkeelle verkossa kaavinta.

instagram viewer

Ainoa varoitus on, että yksinkertaisuutensa vuoksi Beautiful Soup ei ole yhtä tehokas kuin Scrapy tai Selenium. Ohjelmoijat, joilla on kokemusta kehitystyöstä, voivat helposti hallita sekä Scrapyn että Seleniumin, mutta aloittelijoille Ensimmäisen projektin rakentaminen voi viedä paljon aikaa, jos he valitsevat nämä puitteet kauniin sijaan Keitto.

Voit kaapata otsikkotunnisteen sisällön osoitteesta example.com kauniin keiton avulla käyttämällä seuraavaa koodia:

url = "https://example.com/"
res = requests.get (url).teksti
keitto = BeautifulSoup (res, 'html.parser')
otsikko = soup.find("otsikko").teksti
Tulosta(otsikko)

Saavuttaaksesi samanlaisia ​​tuloksia seleeniä käyttämällä, kirjoitat:

url = "https://example.com"
ohjain = webdriver. Kromi("polku/to/chromeddriver")
kuljettaja.saada(url)
title = driver.find_element (tekijä: TAG_NAME, "otsikko").get_attribute('teksti')
Tulosta(otsikko)

Scrapy-projektin tiedostorakenne koostuu useista tiedostoista, mikä lisää projektin monimutkaisuutta. Seuraava koodi kaappaa otsikon osoitteesta example.com:

tuonti raapuvainen

luokkaaOtsikko Spider(raapaisu. Hämähäkki):
nimi = 'otsikko'
start_urls = ['https://example.com']

defjäsentää(itse, vastaus):
tuotto {
'nimi': vastaus.css('otsikko'),
}

Jos haluat poimia tietoja palvelusta, joka tarjoaa virallisen API: n, se saattaa olla viisas päätös käytä API: ta verkkokaavin kehittämisen sijaan.

2. Kaavinta nopeus ja rinnakkaisuus

Näistä kolmesta Scrapy on selkeä voittaja nopeuden suhteen. Tämä johtuu siitä, että se tukee oletuksena rinnastusta. Scrapyn avulla voit lähettää useita HTTP-pyyntöjä kerralla, ja kun komentosarja on ladannut HTML-koodin ensimmäisille pyyntöille, se on valmis lähettämään uuden erän.

Beautiful Soupin avulla voit käyttää ketjutuskirjastoa samanaikaisten HTTP-pyyntöjen lähettämiseen, mutta se ei ole kätevää, ja sinun on opeteltava monisäikeinen tehdäksesi niin. Seleniumissa on mahdotonta saavuttaa rinnakkaisuutta käynnistämättä useita selainesiintymiä.

Jos luokittelet nämä kolme verkkokaapimistyökalua nopeuden suhteen, Scrapy on nopein, jota seuraa Beautiful Soup ja Selenium.

3. Muistin käyttö

Selenium on selainautomaation sovellusliittymä, joka on löytänyt sovelluksensa verkon kaavinta kenttä. Kun käytät Seleeniä verkkosivuston kaappaamiseen, se synnyttää taustalla toimivan päättömän selainesiintymän. Tämä tekee Seleniumista resurssiintensiivisen työkalun verrattuna Beautiful Soupiin ja Scrapyyn.

Koska viimeksi mainitut toimivat kokonaan komentorivillä, ne käyttävät vähemmän järjestelmäresursseja ja tarjoavat paremman suorituskyvyn kuin Selenium.

4. Riippuvuusvaatimukset

Beautiful Soup on kokoelma jäsennystyökaluja, joiden avulla voit poimia tietoja HTML- ja XML-tiedostoista. Se toimitetaan ilman muuta. Sinun on käytettävä kirjastoja, kuten pyynnöt tai urllib HTTP-pyyntöjen tekemiseen, sisäänrakennetut jäsentimet HTML/XML: n jäsentämiseen ja lisäkirjastot välityspalvelinten tai tietokantatuen toteuttamiseen.

Scrapy puolestaan ​​​​tulee koko ketjun mukana. Saat työkalut pyyntöjen lähettämiseen, ladatun koodin jäsentämiseen, poimittujen tietojen toimien suorittamiseen ja kopioitujen tietojen tallentamiseen. Voit lisätä muita toimintoja Scrapyyn laajennusten ja väliohjelmistojen avulla, mutta ne tulevat myöhemmin.

Seleenin avulla lataat web-ohjaimen selaimelle, jonka haluat automatisoida. Muiden ominaisuuksien, kuten tiedontallennus- ja välityspalvelintuen, käyttöönotto edellyttää kolmannen osapuolen moduuleja.

5. Dokumentaation laatu

Kaiken kaikkiaan jokainen projektin dokumentaatio on hyvin jäsennelty ja kuvaa jokaista menetelmää esimerkkien avulla. Mutta projektin dokumentaation tehokkuus riippuu suuresti myös lukijasta.

Beautiful Soupin dokumentaatio on paljon parempi aloittelijoille, jotka aloittavat verkkokaappauksen. Seleniumilla ja Scrapylla on epäilemättä yksityiskohtaiset asiakirjat, mutta tekninen ammattikieltä voi saada monet uudet tulokkaat kiinni.

Jos sinulla on kokemusta ohjelmointikonsepteista ja terminologioista, jompikumpi näistä kolmesta dokumentaatiosta on helppo lukea.

6. Tuki laajennuksille ja väliohjelmistoille

Scrapy on laajennettavissa oleva Python-verkkokaappauskehys, piste. Se tukee väliohjelmistoja, laajennuksia, välityspalvelimia ja paljon muuta, ja auttaa sinua kehittämään indeksointirobotin suuria projekteja varten.

Voit kirjoittaa idioottivarmoja ja tehokkaita indeksointirobotteja toteuttamalla Scrapyssa väliohjelmistoja, jotka ovat periaatteessa koukkuja, jotka lisäävät mukautettuja toimintoja kehyksen oletusmekanismiin. Esimerkiksi HttpErrorMiddleware huolehtii HTTP-virheistä, jotta hämähäkkien ei tarvitse käsitellä niitä käsitellessään pyyntöjä.

Väliohjelmistot ja laajennukset ovat yksinomaan Scrapylla, mutta voit saavuttaa samanlaisia ​​tuloksia Beautiful Soupilla ja Seleniumilla käyttämällä muita Python-kirjastoja.

7. JavaScript renderöinti

Seleenillä on yksi käyttötapaus, jossa se ylittää muut verkkokaappauskirjastot, eli JavaScript-yhteensopivien verkkosivustojen kaapimisen. Vaikka voit kaapata JavaScript-elementtejä käyttämällä Scrapy-väliohjelmistoja, Selenium-työnkulku on helpoin ja kätevin kaikista.

Lataat verkkosivuston selaimella, olet vuorovaikutuksessa sen kanssa napsautusten ja painikkeiden painalluksella ja milloin sinulla on sisältö, joka sinun on kaapittava näytölle, pura se Seleniumin CSS: n ja XPathin avulla valitsimia.

Beautiful Soup voi valita HTML-elementtejä joko XPath- tai CSS-valitsimilla. Se ei kuitenkaan tarjoa toimintoa JavaScript-renderöityjen elementtien kaapimiseen verkkosivulle.

Webin kaapiminen on helppoa Pythonilla

Internet on täynnä raakadataa. Verkkokaappaus auttaa muuttamaan nämä tiedot merkityksellisiksi tiedoiksi, joita voidaan käyttää hyväksi. Seleeni on luultavasti turvallisin vetosi, jos haluat kaapata verkkosivuston JavaScriptillä tai jos haluat käynnistää joitain näytön elementtejä ennen tietojen purkamista.

Scrapy on täysimittainen web-kaappauskehys kaikkiin tarpeisiisi riippumatta siitä, haluatko kirjoittaa pienen indeksointirobotin tai suuren kaavin, joka indeksoi toistuvasti Internetistä päivitettyjä tietoja varten.

Voit käyttää Beautiful Soupia, jos olet aloittelija tai haluat kehittää kaavin nopeasti. Mitä tahansa kehystä tai kirjastoa käytätkin, on helppo aloittaa web-kaappauksen oppiminen Pythonilla.