❗ Fampitandremana : Fizarana faha-3 amin'ny andian-dahatsoratra enina momba ny fakosoka amin'ny Internet. Vaovao amin'ny andiany? Atombohy amin'ny famakiana ny Fizarana 1 !
Ao amin'ny Fizarana 2 amin'ny andiany Advanced Web Scraping, dia nianatra ny fomba fikikisana angona avy amin'ny SPA, PWA, ary tranokalan'ny AI ianao. Amin'izao fotoana izao, tokony hanana ny fahalalana rehetra ilaina amin'ny fananganana scraper izay miasa amin'ny ankamaroan'ny tranokala maoderina ianao.
Inona no manaraka? Fotoana hanamafisana ny scraper anao amin'ny toro-hevitra sy fika pro scraping!
Manangana scraper web? Momba ny fanoratana daholo izany. 👨💻
Ary ndeha ho marin-toetra - raha efa nanoratra code ianao dia fantatrao fa tsy sarotra ny fanoratana amin'ny ankamaroan'ny fotoana. Andalana vitsivitsy eto, a for
any, ary boom, ianao dia manapaka data toy ny pro. Toa tsotra, sa tsy izany? 😄
Fa izao no olana: ny fahatsoran'ny fanoratana kikisana kely dia mety hampitony anao amin'ny fahatsapana ho tsy manana ahiahy. Nahoana no manahirana amin'ny fanehoan-kevitra mety, ny fitantanana ny fahadisoana, ny diary, na ny fidiran'ny tsikombakomba tsara nefa andalana am-polony fotsiny no azon'ny olona vakiana?
Azontsika izany—maninona no manamboatra zavatra tsy mila izany? Ny overengineering dia fahavalon'ny fandrosoana. Fa inona no mitranga rehefa mila manenjana ny scrapers amin'ny pejy maromaro na tranokala manontolo mihitsy aza ianao? 🤔
Amin'izay fotoana izay dia rava ny kikisanao haingana sy maloto, misy kaody spaghetti! 🍝
Ity no antony ilanao toro-hevitra momba ny fikikisana tranonkala.
Tsy maintsy efa naheno ny toro-hevitra momba ny fakosana tranonkala mahazatra ianao: ataovy laharam-pahamehana ny pejy misy angona manan-danja aloha, amboary ny fangatahanao, sns. Toro-hevitra tsara—fa ndao ho marin-toetra, vaovao tranainy ireo tetika ireo. 📰
Rehefa miatrika toe-javatra mandroso kokoa ianao dia mety tsy hanapaka izany ireo fototra ireo. Raha tena te hampiakatra ny lalao scraping ianao dia mila mandinika teknika manaraka.
Vonona? Miomàna — fotoana izao hampiakatra ny fahaizanao mikosoka tranonkala ho amin'ny ambaratonga manaraka! 💪
⚠️ Fampitandremana: Aza manahy raha toa efa mahazatra ny sasany amin'ireo toro-hevitra — tohizo! Betsaka ny hevi-baovao mahaliana rehefa mitsoraka lalindalina kokoa ianao! 🤿
Ny iray amin'ireo fahadisoana mahazatra indrindra amin'ny fikikisana tranonkala dia ny fanadinoana fa ny Internet dia tsy teknolojia mahagaga sy tsy mety diso. Rehefa mandefa fangatahana amin'ny tranokala iray ianao dia mety ho diso ny zavatra isan-karazany (ary mety hisy fotoana). ❌
Andeha hojerentsika ny toe-javatra mahazatra sasany:
Mety hikorontana vetivety ny Wi-Fi na ny fifandraisanao
Mety tsy misy ny mpizara mampiantrano ny tranokala
Mety tsy hisy intsony ny pejy tadiavinao
Ny tranonkala kendrena dia mety ho tratran'ny fihemorana vonjimaika, ka miteraka fahadisoam-potoana
Ankehitriny, afangaro amin'ny fanaparitahana angon-drakitra, fanodinana mialoha ary fanondranana any amin'ny angon-drakitra, ary manana fomba fanamboarana tonga lafatra ho an'ny korontana ianao. 💥
Inona àry no vahaolana? Error handling ! 🛡️
Ny fitantanana ny hadisoana no namanao akaiky indrindra amin'ny fikikisana tranonkala. Mety hanamboatra pejy am-polony (na an'arivony) ny scripto, ary ny fahadisoana tokana dia tsy tokony hampiato ny asanao manontolo.
Tsarovy fa ny try ... catch
block dia namanao. Ampiasao izany mba hamenoana ny fangatahanao sy ny lojika fanodinana. Ataovy ao an-tsaina koa fa ny ankamaroan'ny tranomboky HTTP dia tsy mametraka fanavahana ho an'ny valinteny HTTP ratsy (toy ny 404
na 500
). 😲
Raha tsy zatra amin'ny HTTP status codes ianao dia jereo ny video eto ambany:
Ohatra, ao amin'ny tranomboky fangatahan'i Python dia mila manamarina ny fehezan-dalàna momba ny valinteny toy izao manaraka izao:
import requests response = requests.get("https://example.com") if response.status_code == 200: # handle the successful response... else: # handle the error response...
Na, mitovy amin'izany, ampiasao ny fomba raise_for_status() :
import requests try: response = requests.get("https://example.com") # raises an HTTPError for bad responses (4xx or 5xx) response.raise_for_status() # handle the successful response... except requests.exceptions.HTTPError as http_err: # handle an HTTP error... except requests.exceptions.RequestException as req_err: # handle a request error...
Ny scripting web scraping efa mandroso dia tokony tsy vitan'ny hoe afaka miatrika lesoka fa miverina amin'izy ireo ihany koa. Satria ny ankamaroan'ny lesoka mifandraika amin'ny fikikisana tranonkala dia mifamatotra amin'ny fanaovana fangatahana tranonkala, azonao atao ny manatsara ny fahombiazan'ny scraper amin'ny fampiharana ny fangatahana azo averina .
Tsotra ny foto-kevitra: raha tsy mahomby ny fangatahana iray, andramo indray—iray, roa, in-telo, na mihoatra—mandra-pahombiazana azy. 🔄
Fa izao no hanjo azy: satria ny iray amin'ireo antony mahazatra indrindra amin'ny fangatahana tsy nahomby dia ny lohamilina kendrena dia mihidy vonjimaika na miadana, dia tsy te hanakorontana izany ianao amin'ny fandefasana fangatahana mitovy amin'ny fotoana fohy.
Raha toa ka tsy mahomby izao ny fangatahana iray dia mety tsy hahomby avy hatrany izany. Eo no miditra an-tsehatra ny backoff exponential !
Raha tokony hanandrana indray avy hatrany, ity teknika ity dia mampitombo tsikelikely ny fotoana eo anelanelan'ny andrana indray, manatsara ny fahombiazanao amin'ny alàlan'ny fanomezana fotoana ho an'ny mpizara kendrena. ⏳
Na dia azonao atao aza ny mampihatra paikady famerenan-tena tsotra miaraka amin'ny kaody mahazatra, mpanjifa HTTP maro no tonga miaraka amin'ny kojakoja na trano famakiam-boky voaorina mba hikarakarana ny famerenana ho azy. Ohatra, Axios dia manolotra ny tranomboky axios-retry , izay azonao ampiasaina toy izao:
const axios = require("axios"); const axiosRetry = require("axios-retry"); axiosRetry(axios, { retries: 3, retryDelay: axiosRetry.exponentialDelay }); axios.get('https://example.com') .then(response => console.log(response.data)) .catch(error => console.log("Request failed:", error));
Toy izany koa, ny fonosana urllib3
an'i Python dia miaraka amin'ny kilasy Retry izay mitambatra tsy misy olana amin'ny ankamaroan'ny mpanjifa HTTP Python .
Rehefa mandinika ireo singa ao amin'ny DevTools ianao dia mety halaim-panahy hanindry havanana ary misafidy ny safidy "Copy selector":
Tandremo anefa fa mety ho toy izao ny vokatra:
#__next > div > main > div.sc-d7dc08c8-0.fGqCtJ > div.sc-93e186d7-0.eROqxA > h1
Tena tsy mety amin'ny fikikisana tranonkala izany….
Ny olana? Ireo mpifidy manokana be loatra toa ireny dia mety ho tapaka mora rehefa miova ny firafitry ny pejy. Arakaraky ny antsipiriany bebe kokoa ny mpifidy anao no lasa marefo kokoa.
Mba hahatonga ny fikikisana amin'ny tranonkalanao ho mora kokoa, dia tsy maintsy mitazona ny mpifidy anao ho malefaka ianao. Raha tokony hiantehitra amin'ny kilasy mifandraika amin'ny fomba (izay miova foana), dia mifantoha amin'ny toetra tsy dia azo ovaina, toy ny id
, data-
, na aria-
. Ny ankabeazan'ireo toetra ireo dia natao ho an'ny fitsapana sy ny fahazoana miditra , noho izany dia mirona hitoetra tsy miovaova rehefa mandeha ny fotoana. 💡
Ary raha mora kokoa ny mamaky sy mahatakatra ny mpifidy CSS , ny XPath dia manome hery bebe kokoa. Fa aza manahy—afaka mahazo valiny mitovy amin'ny CSS tsotra ianao, mamonjy anao tsy mila kaody XPath sarotra. 😌
Raha mila fanazavana fanampiny momba izany dia jereo ny torolàlana momba ny XPath vs CSS selectors !
Mitaky fotoana sy loharano ny famakafakana ny pejy HTML, indrindra raha DOM lehibe misy akany ianao. Raha mamaky pejy vitsivitsy fotsiny ny scraper anao dia tsy dia zava-dehibe loatra izany.
Ankehitriny, inona no mitranga rehefa mihamitombo ny asa fikikisanao ary tsy maintsy maka angon-drakitra avy amin'ny pejy an-tapitrisany ianao? Io overhead kely io dia afaka manondraka haingana ny loharanon'ny mpizara ary manampy ora amin'ny fotoana fikosanao manontolo. ⏳
Mba hahazoana fahatakarana lalindalina kokoa dia jereo ireto loharano ireto:
Mitady fampitahana feno? Vakio ny lahatsoratra momba ny parser HTML tsara indrindra .
Ny vaovao tsara? Tsy dia sarotra ny fifindrana avy amin'ny parser iray mankany amin'ny iray hafa. Ohatra, ao amin'ny BeautifulSoup , fanovàna mari-pamantarana tsotra fotsiny izany:
from bs4 import BeautifulSoup # or using html.parser soup = BeautifulSoup(html_content, "html.parser") # or using lxml parser soup = BeautifulSoup(html_content, "lxml")
Ary ahoana ny momba ireo parser HTML natsangana tao anaty navigateur toa an'i Chrome? 🤔
Fantaro bebe kokoa amin'ny video eto ambany:
HTTP/2 dia kinova HTTP nohavaozina izay mamela fangatahana maro amin'ny fifandraisana tokana. Mampihena ny fahatarana izany ary afaka manatsara ny fampandehanana amin'ny ankapobeny ny asa fikikisanao.
Raha te hanamarina raha mahazaka HTTP/2 ny tranonkala iray, sokafy fotsiny ny DevTools amin'ny mpitety tranonkalanao, mandehana any amin'ny tabilao “Tambajotra”, ary tadiavo ny tsanganana “Protocol” — raha milaza hoe h2
, dia mampiasa HTTP/2 ilay tranokala:
Indrisy anefa fa tsy ny mpanjifa HTTP rehetra sy ny tranomboky mikaroka no manohana ny HTTP/2. Na izany aza, ny fitaovana toy ny HTTPX ho an'ny Python dia manome fanohanana feno ho an'ny HTTP/2 .
Ny fikikisana amin'ny Internet dia asa mifatotra I/O amin'ny ankapobeny — mandefa fangatahana amin'ny mpizara ianao, miandry ny valiny, manodina ny angon-drakitra ary mamerina. Mandritra ny fotoam-piandrasana dia tsy miasa ny scraper anao, izay tsy mahomby.
Ny vahaolana? Parallèle na concurrency !
Amin'ny fandefasana fangatahana marobe indray mandeha dia azonao atao ny manamaivana ireo fotoana maty ireo ary manatsara ny fampiasana tambajotra.
🚨 Fa mitandrema! 🚨
Ny fanapoahana lohamilina miaraka amin'ny fangatahana miaraka be loatra dia mety hitarika amin'ny famerana ny tahan'ny na ny fandrarana ny IP-nao — fepetra roa miady amin'ny fikikisana malaza. 😬
Soso-kevitra Pro : Azonao atao ihany koa ny mampitovy ny asa fanaovana parsing, indrindra raha mampiasa CPU maro ianao, izay hanafaingana ny fizotran'ny fitrandrahana angona. ⚡
Ny algorithm adaptive mifototra amin'ny AI dia mianatra avy amin'ny lamina ao amin'ny angon-drakitra sy ny firafitry ny pejy HTML, manitsy ny fitondran-tenany amin'ny fotoana tena izy mba hijanonana amin'ny fanovana. 😮
Fanovana lalao amin'ny fikikisana tranonkala izany! 🤯
Rehefa manavao ny lamin'izy ireo ny tranokala na mametraka fepetra manohitra ny bot, dia afaka mampifanaraka haingana ireo algorithm ireo, ka miantoka ny fandehananao tsara. 🧠
Raha fintinina dia mahatonga ny scrapers ho marani-tsaina kokoa izy ireo, manampy anao amin'ny famoahana angon-drakitra amin'ny fomba mahomby — na dia manipy curveballs tsy ampoizina aza ny tranokala. ⚾ Miaraka amin'ny algorithm adaptive, dia toy ny manana scraper izay mivoatra rehefa mandeha ny fotoana!
Mianara bebe kokoa ao amin'ny Toko faha-4 amin'ity horonantsary ity nataon'i Forrest Knight:
Azo antoka fa ny toro-hevitra sy fika rehetra voalazanay hatreto dia mety hahatonga ny scraper ho haingana kokoa, azo ianteherana, matanjaka ary mahomby. Nefa aoka isika ho tena misy — izy ireo koa dia mitondra fahasarotana be dia be. 😅
Ny vaovao mahafaly dia ny ankamaroan'ireo lesona ireo dia mihatra amin'ny ankamaroan'ny tetikasa fanodinana. Noho izany, raha tokony hanoratra ny zava-drehetra manomboka amin'ny scratch ianao, dia azonao atao ny mampiasa fiasa efa namboarina mba hiatrehana asa manokana. Izany indrindra no atolotry ny Bright Data's Scraping Functions !
Miaraka amin'ny fiasa JavaScript efa vonona 73+, ireo mpampiasa dia nanamboatra scraper 38K miasa manerana ny firenena 195+. Tena mahery vaika izany! 📈
Manafaingana ny fivoaranao miaraka amin'ny tontolon'ny fandehanana natao hanakisana, hamaha, ary handanja ny fanangonam-baovao amin'ny tranonkala mora foana:
Fantatrao izao ny fomba hampiakatra ny scraper anao amin'ny fomba fijery avy amin'ireo mpamorona scraping efa za-draharaha!
Tsarovy fa Fizarana faha-3 ihany ity, noho izany dia eo amin'ny antsasa-manilan'ny dianay misy ampahany enina mankany amin'ny fikikisana tranonkala mandroso isika! Tazony mafy io fehin-tseza io fa saika hiroboka amin'ny teknolojia manara-penitra kokoa, vahaolana marani-tsaina ary toro-hevitra avy amin'ny atitany.
Fijanonana manaraka? Mampiasa ny herin'ny fitantanana proxy entin'ny AI! 🌐