
Stažení výsledků hledání google přes file_get_contents...
Ahoj, řeším tu jeden drobný problém s googlem - mám tu jednu svojí utilitku napsanou v php, která sleduje pozice ve vyhledávání na googlu, seznamu a dalších...
Funguje to tak, že mám db určitých výrazů které hledám a pak si generuji grafy jak si konkrétní fráze vedla v jednotlivých testech.
Program mi pěkně fungoval cca od srpna a vždy v noci se spustila dávka testů, ale začátkem tohoto roku mi přestal fungovat google - místo aby vrátil html s výsledky hledání, tak dostanu úvodní stranu která má i špatné písmo (místo diakritiky jen otazníky), nebo dostanu stránku s captchou, případně odkaz na redirect.
Načítání html používám klasické file_get_content (ale zkoušel jsem i curl).
Když chci např. vyhledat výsledky hledání na slovo "lékárna praha", udělám toto:
<?php
$fraze="lékárna praha";
$url = "https://www.google.cz/search?".urlencode($fraze)."&start=0";
$html = file_get_contents($url);
?>
Výše uvedený kód až do teď fungoval 100%. Zkoušel jsem různé změny adresy, parametry apod. Někdy jsem se i dostal do fáze, že když jsem script odpálil v prohlížeči, tak jsem dostal výsledek, ale jakmile jsem to implementoval v programu, tak zase nic...
Asi to bude potřebovat nějaké hlavičky, ale jaké a jak je poslat?
Díky za pomoc
https://www.whatismybrowser.com/detect/what-http-h eaders-is-my-browser-sending
Tak bohužel po dvou dnech opět dostávám chybu Warning: file_get_contents(search): failed to open stream: HTTP request failed! HTTP/1.0 503 Service Unavailable in C:\dev\....\file_get2.php
Ja teda neviem... Chceš používať niečo od Google, tak sa informuj ako na to priamo u nich: custom-search
Ano, vím že na to mají api, ale potřeboval jsem nasimulovat situaci, jak to vidí user který přijde na google... Nejsem si jist, že api bude dávat stejné pořadí...
Zatím jsem tam zkusil dát pauzy mezi jednotlivýma dotazama a tahám to přes jiný server, protože mě asi blokli IP...
Pokud to ani tak nepůjde, tak hold budu muset to api použít...
Hmmm.
Ještě můžeš použít nějaký random řetězec klientského User-Agenta pro hledání.
Třeba to oblbne blokátor.
Co já vím.
No dopoledne jsem nasadil novou verzi, která zaprvé bude náhodně spouštět dotazy v rozmezí 1-2 minuty a ještě to jde přes jiný server... V noci se spouští úloha, tak uvidím ráno..
• Zkus pouzit:
Na misto ($url);
• Pres Proxy nejedes ne, nebo jsi v BlackList IP?