Van erre lehetőség a bérelt tárhelyeknél?

 ( Breaknet | 2014. július 8., kedd - 14:56 )

Sziasztok,

A következő PHP programot szeretném futtatni, a kérdésem, hogy melyik tárhelyet kéne választanom, illetve van-e erre egyáltalán lehetőség?

A PHP-ben van egy ciklus, ami kb. 1 milliószor futna le. A cikluson belül cURL-lal bejelentkezek egy weboldalra, majd annak az aloldalait töltöm le, ugyancsak cURL segítségével, regexp-vel pedig kiszedek minden aloldalból bizonyos adatokat és az SQL adatbázis 10 különböző mezőjébe írom azokat.

1 milliószor hosszú órák alatt futna le... a kérdésem egyrészt, hogy be lehet-e úgy állítani a futási időlimiteket (tehát egy LAMP-ban van-e erre lehetőség), hogy a ciklus 1 milliószor lefuthasson, mégpedig a CRON tudja futtatni, mert automatizálva lenne a dolog, heti 1x futna végig, másrészt pedig szólnának-e érte a tárhelyesek?

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Nem hiszem, hogy szólnak, csak letiltják a francba a tárhelyed. Ezt inkább VPS-en kéne.

--
Fontos! Ha berágok, nem feltétlen személyed ellen szól...
openSUSE 13.1 x86_64

+1 De ha tenyleg csak hetente kell akkor azt is csinalod a mint a bigdump meg egyeb projektet, egy sima sqlite vagy akar file db-ben letarolod azt hogy hol jarsz, aztan reszekre bontod annyira amennyit a maximalis futasi ido enged, aztan reszenkent dolgozodd fel, igy akar ha jol csinalod akar tobszallasithatod is, gondolom takolt kodrol van szo amugy is szoval kis pofozassal megoldhato.

Hogy orulni fognak-e neki az mas kerdes, meg hogy mennyire engedik meg a kulso oldal latogatast, mennyi foralommal jar, mennyi CPU-t eszik, mennyi tarhely kell neki stb stb altalanosaggban a VPS jobb otletnek tunik...

+1, amit Te akarsz, az gyk egy crawler. Az osztott hostingok ugy vannak meretezve, hogy az ido toredek reszeben igenyel gepidot az oldalad, ez pedig egy jelentos reszt igenylo folyamat. -> VPS.

--
Pásztor János
Üzemeltető Macik

Ha osztott tárhelyes szolgáltatókra gondoltál, akkor az az alapszolgáltatásba biztos nem fér bele. Ha más típusú tárhely szolgáltatásod van, akkor az a szerződésedtől függ.
1 millió lekérés többszálúsítva tudna csak belátható időn belül lefutni. Heti ilyen számú lekérésnél, már az adatforgalom is szép lehet, így azzal is célszerű kalkulálni. Erre a legjobb talán már az ajánlott VPS lehet, illetve ha heti 1m sorod keletkezik, akkor érdemes elgondolkodni, valamilyen nosql megoldásra váltáson.

Azt nem tudom pontosan miről lenne szó, de ilyen feladatot inkább C-ben oldanék meg. PHP több erőforrást zabálna, ha cURL-t külsőleg hívnád meg akkor meg végképp nagyobb terhelést okoz. Pláne ha egymillió lefutást / hét tervezel.
Másik kérdés hogy az említett weboldal mennyire venné zokon hogy Te ennyi kapcsolatot létesítel vele rövid időn belül.

Kapcsolódik, ha Python lehetséges opció: https://github.com/scrapy/scrapy

Nekem ilyen e-mail cím gyűjtő proginak hangzik elsőre.

Kérdésedre a válasz: tárhely tuti nem, mert azonnal letiltják.
Ezt csak saját szerverről tudod megoldani, de a szolgáltatód azonnal tilt, amint valami galádságot csinálsz.

Nem e-mail cím gyűjtő és nem is illegális.

szerintem 2 lekérés/mp elmegy egy olyan weboldalnak ami 1 millió rekordot tart nyilván.
Ez 5 óra alatt végez. Miért baj ha órákig fut?

Nem tudom, a fenti hozzászólások szerint baj.

3600*2*5 != 1.000.000

A robots.txt-bol ki lehet szedni, hogy mennyi van engedelyezve.
A hup.hu eseten: Crawl-delay: 10

Ilyen iramban 1 millio oldal az 1.000.000/24/360 ~ 115 nap.

A szabalyok oldalankent valtoznak, en kuldtem mar /dev/null-ba tobb /24-es alhalozatot mert nem tartottak be a robots.txt-t.

Ha meg vagy egyezve az oldal tulajdonosaval, akkor persze rad nem ervenyes a robots.txt.

A 115 napos matekot nagyon elszámoltad szerintem :)
Szóval 2*60*60*24*7 = 1209600 / 1M = 0,83 vagyis másodpercenként 2 lekéréssel 1 héten belül lefüt a ciklus kényelmesen, még rövidebb leállás is belefér.

"Crawl-delay: 10 ... Ilyen iramban"

Attól függ. Ha egy oldalt öl, akkor ki fog bukni. De ha van mondjuk párezer oldal, akkor elég jól eloszlik a terhelés.
De az is lehet, hogy engedélye van erre az oldal tulajától, csak akkor meg miért öli a weboldalt ha elkérhetné az adatbázist is...

Ez egy olyan oldal, ahová rengetegen rengetegféle kiegészítőt írnak, aloldalakat hoznak létre, szóval nem érdekli a tulajokat az ilyen jellegű tevékenység. Van API-ja is az oldalnak, de erősen béta állapotú, kevés dologra ad lehetőséget.

A robots.txt az nem oldalra vonatkozik, hanem domain-re, es nem IP-re, hanem crawler-re.
Az a minimum, hogy a robots.txt-t gyakran kell nezni es be kell tartani. Ha egy masik szolgaltatasra akarsz epiteni szolgaltatast, akkor gyozodj meg rola, hogy a Felhasznalais feltetelei az oldalnak mit engednek meg neked.

Amugy szerintem lehet, hogy jobb otlet az otthoni gepen futtatni a scriptet, egy het alatt a hatterben lefuthat, nem kell neki sok eroforras, a hatterben mehet a letoltes mikozben te egyebre hasznalod a geped.

Amugy nem jobb neked egy ilyesmi?
http://www.httrack.com/
vagy win ala:
http://www.tenmax.com/teleport/pro/home.htm

A httrack ugy tudom tiszteletben tartja a robots.txt-t is (ugy tudom). Ezekkel konnyebb frissiteni is, mert tudjak nezni az utolso modositasi datumot (ha a webserver is tamogatja).

Ha lejott, akkor lokalisan feldolgozod a cuccokat.

Az jutott az eszembe, ha nem illegális meg pláne ha nem titkos, akkor mutasd meg a szimpatikus szolgáltatónak, hogy ezt szeretnéd futtatni, időzítve, akár csúcsidőn kívül - ha neked jó úgy, és tudnak mondani nyugalmasabb időszakot.

Ha nem foglalkoznak veled, akkor eleve felejtős a support. Ha válaszolnak, hogy bocs, nem, akkor az tiszta ügy. Ha meg meg lehet velük dumálni, akkor az a legjobb, mert ők is látják, hogy nem akarsz sumákolni, meg te is látod, hogy lehet velük tárgyalni.

Ha nálam ilyet csinálnál, nem igen örülnék neki! :D Technikailag szerintem megoldható, de hamar kiderül - az meg már szolgáltatótól függ, hogy kedvesen érdeklődik hogyan léted után, vagy egyszerűen szó nélkül letilt a többi user védelmében. Szerintem is inkább VPS-el vagy saját vassal lenne érdemes próbálkozni.

A legalitást nem firtatom, egyrészt mert nem rám tartozik, másrészt pedig mert én is csináltam hasonlót, igaz ott "csak" százezres volt a nagyságrend. Elvileg az is legális dolog volt, de a másik fél simán lelőtt... külön egyezkedni kellett velük, hogy milyen gyakorisággal, mikor, mennyi adatot "lophatok" a rendszerükből, hogy ezzel nekik se okozzak irreálisan nagy terhelést - csak ez után oldották fel az IP címem blokkolását.

Jham, ezt kifejeltettem, hogy a másik oldal mit szól a millió bejelentkezéshez. Mert úgy írtad (mármint Breaknet :D), hogy a cikluson belül jelentkezel be, ami miatt esetleg sikítófrászban törnek ki. Persze ha annyiféle userrel kell belépni, az egy másik dolog, de attól még lehetnek idegesek.

Csak egyszer lépek be, aztán a cikluson belül már a letöltött cookie-val, token-nel azonosítom magam.

Nincs ebben tapasztalatom... ha felraknék egy LAMP-ot a saját gépemre (2 magos Intel E5200, 2 GB RAM), akkor mennyi idő alatt tudnám lefuttatni a ciklust?

A ciklus 100x ingyenes tárhelyen 25 mp alatt fut le, vagyis 1 milliószor 1 hét alatt futna le. De amúgy rájöttem, hogy csak az 1. alkalommal kell neki 1 milliószor lefutnia, utána már csak 2-300 ezerszer, mert 1 milliószor csak azért kell lefutnia, hogy feltérképezze az összes élő oldalt, a későbbiekben pedig már csak az adatokat kell aktualizálnom.