Zadejte hledaný výraz...

Získanie hlavičky so zoznamu webov – get_headers()

FAKAM
verified
rating uzivatele
(10 hodnocení)
18. 2. 2012 09:45:45
Zdravím Vás,
Pracujem na diplomovke a potrebujem získať hlavičky z domén. Prejsť 260 000+ domén nie je časovo jednoduché a pri doménach, ktoré nevracajú žiadnu odpoveď spomaľujú script.
napríklad doména 007.sk:
Warning: get_headers(http://007.sk) : failed to open stream: Connection timed out in...
Dá sa domena vopred overiť či je prístupná, alebo nie? (správne nastavené a funkčné DNS)
Každá doména ktorá vyhodí timed out trvá aj 30+ sekund a tomu chcem zabrániť.
Dík za každú radu
18. 2. 2012 09:45:45
https://webtrh.cz/diskuse/ziskanie-hlavicky-so-zoznamu-webov-get_headers/#reply732085
Tomáš
verified
rating uzivatele
(27 hodnocení)
18. 2. 2012 09:58:03
Pomocou cURL sa dá myslím nastaviť, aby ak sa do x (voliteľné) sekúnd nepodarí k stránke pripojiť, pripájanie sa preruší (a teda je tam predpoklad, že doména nie je prístupná).
18. 2. 2012 09:58:03
https://webtrh.cz/diskuse/ziskanie-hlavicky-so-zoznamu-webov-get_headers/#reply732084
Michal Haták
verified
rating uzivatele
(1 hodnocení)
18. 2. 2012 13:20:18
udelal bych to nejak takhle
define('MAX_REDIRECTS', 3);
define('IGNORE_ERR', 1);
define('TIMEOUT',5); // float
function isAlive($url){
$params = array('http' => array(
'method' => 'GET',
'timeout' => TIMEOUT,
'max_redirects' => MAX_REDIRECTS,
'ignore_errors' => IGNORE_ERR
));
$ctx = stream_context_create($params);
$fp = @fopen($url, 'rb', false, $ctx);
//$meta_data = stream_get_meta_data($fp);
if (!$fp) {
return false;
}
fclose($fp);
return true;
}
mas tam i zakomentovanou funkci na hlavicku, da se pouzit i file_get_contents, ale to je podle me min uspornejsi :)
edit: pouzivam podbnej script bez timeoutu, psal jsem to z hlavy, snad by to melo byt oka :D
18. 2. 2012 13:20:18
https://webtrh.cz/diskuse/ziskanie-hlavicky-so-zoznamu-webov-get_headers/#reply732083
Petr
verified
rating uzivatele
18. 2. 2012 14:32:12
Napsal FAKAM;760252
Zdravím Vás,
Pracujem na diplomovke a potrebujem získať hlavičky z domén. Prejsť 260 000+ domén nie je časovo jednoduché a pri doménach, ktoré nevracajú žiadnu odpoveď spomaľujú script.
napríklad doména 007.sk:
Warning: get_headers(http://007.sk) : failed to open stream: Connection timed out in...
Dá sa domena vopred overiť či je prístupná, alebo nie? (správne nastavené a funkčné DNS)
Každá doména ktorá vyhodí timed out trvá aj 30+ sekund a tomu chcem zabrániť.
Dík za každú radu
http://www.php.net/manual/de/function.get-headers.php#90434
Máš tam názorně ukázané, jak se curl nastavuje a jaké má volby tady: http://php.net/manual/en/function.curl-setopt.php
Pak taky http://php.net/manual/en/function.stream-set-timeout.php...možností je více.
18. 2. 2012 14:32:12
https://webtrh.cz/diskuse/ziskanie-hlavicky-so-zoznamu-webov-get_headers/#reply732082
FAKAM
verified
rating uzivatele
(10 hodnocení)
18. 2. 2012 15:06:17
ďakujem pekne názorný príklad ma priviedol na správne riešenie
18. 2. 2012 15:06:17
https://webtrh.cz/diskuse/ziskanie-hlavicky-so-zoznamu-webov-get_headers/#reply732081
Bacon
verified
rating uzivatele
(2 hodnocení)
19. 2. 2012 09:24:12
Dovolím si doporučit nějakou multi cURL class, která umožní zpracovávat paralelně několik spojení (např. v jednom okamžiku přistupovat na 25 domén). Je to výrazně rychlejší, než otevřít spojení, provést dotaz, ukončit spojení a znovu pro každou jednu doménu.
Těch tříd je hned několik, stačí hledat multicurl, např. tato nevypadá špatně.
19. 2. 2012 09:24:12
https://webtrh.cz/diskuse/ziskanie-hlavicky-so-zoznamu-webov-get_headers/#reply732080
Tom
verified
rating uzivatele
(6 hodnocení)
19. 2. 2012 13:13:16
Psal jsem něco podobného v RUBY, pro každé spojení jsem si otevřel nové vlákno, takže všechny dotazy běželi paralelně a bylo to hodně rychlé.
19. 2. 2012 13:13:16
https://webtrh.cz/diskuse/ziskanie-hlavicky-so-zoznamu-webov-get_headers/#reply732079
FAKAM
verified
rating uzivatele
(10 hodnocení)
19. 2. 2012 21:39:52
tak spustím súčasne 5 procesov a aktualizujem jednu tabuľku o nové dáta. Nemalo by to byť veľmi spomalené výkonom servera. Zatiaľ skúsim overiť každú doménu zvlášť. Hádam sa podarí získať dáta do niekoľkých hodín.
19. 2. 2012 21:39:52
https://webtrh.cz/diskuse/ziskanie-hlavicky-so-zoznamu-webov-get_headers/#reply732078
Pro odpověď se přihlašte.
Přihlásit