Temos pavadinimas: WordPress, Shopify ir PHPFusion programuotojų bendruomenė :: Paprastas paveikslėlių scrapper'is

Parašė Pakartoti slaptažodį· 2016 Kov. 5 15:03:12
#1

Sveiki visi, taigi pasidalinsiu paprastu kodo gabaliuku, kuris padėjo man sutaupyti nemažai laiko. Šio įrankio pagalba per minutę sugebėjau iškrapštyti iš gana didelio tinklalapio visus paveikslėlius ir gauti juos vienoje vietoje. Įrankis puikiai tinka turiniui, išskaidytam puslapiais.

Galima buvo ir į skriptų biblioteką įkelti, tačiau pilanvertė diskusija yra kiečiau ir daugiau žmonių pamatys.

Šitą reikalą galima lengvai pritaikyti ne tik paveikslėliams, bet ir ištisiems blokams, tiesiog reikia žinoti kokių tagų tau reikia.
Pavyzdyje palikau linką tinklapio, su kuriuo atlikau eksperimentą. Senai norėjosi peržvelgti visus juokingus paveikslėlius, tačiau tai gana užsitęsė. O štai turint visus paveikslėlius viename puslapyje ir gana švariu formatu, užduotį pavyko įgyvendinti greitai.

Ciklas suka puslapius į priekį. Jei jums puslapiavimo nereikia, ciklą pašalinkit.

Jei kils klausimų, mielai padiskutuočiau.

<?php
for ($i = 1; $i <= 1000; $i++) {
	$dom = new domDocument;
	@$dom -> loadHTML(file_get_contents('http://www.millionreasonswhylithuaniaisthebestcountryintheworld.com/lt/all/newest/'.$i));
	$dom -> preserveWhiteSpace = false;
	foreach ($dom -> getElementsByTagName('img') as $image) {
	  echo "<img src=".$image -> getAttribute('src')."><br>";
	}
}
?>

Parašė Žmogus· 2016 Kov. 5 18:03:35
#2

Geras dalykas, tik gal vietoj for ciklo išeina padaryti, kad paimtu visus paveiksliukus į masyvą ir poto su foreach praeiti pro visus?
Pats web scrapping nemažai esu daręs, seniau naudodavau šita: http://simplehtmldom.sourceforge... biblioteką (nu jinai tokia labiau novice programuotojam). O paskutiniam tokiam nini projektui naudojau: https://github.com/FriendsOfPHP/...

Parašė Pakartoti slaptažodį· 2016 Kov. 5 22:03:57
#3

Nežinau ar teisingai supratau, bet maniškis kodas veikia būtent nuotraukas foreach'indamas. for iklas naudojamas išimtinai tik puslapiavimui, kada norime nuscrappinti visą tinklalapį... ?page=1, ?page=2, ?page=3 T.y. be to neišsiverstume.

Parašė Žmogus· 2016 Kov. 6 11:03:32
#4

Pakartoti slaptažodį parašė:
Nežinau ar teisingai supratau, bet maniškis kodas veikia būtent nuotraukas foreach'indamas. for iklas naudojamas išimtinai tik puslapiavimui, kada norime nuscrappinti visą tinklalapį... ?page=1, ?page=2, ?page=3 T.y. be to neišsiverstume.


Oj žioplas aš, nepastebėjau to foreach :]