Stránka 1 z 1

Stažení výsledků hledání google přes file_get_contents..

Napsal: pon 1. úno 2016, 10:51
od Václav Sedlář
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:

Kód: Vybrat vše

<?php
$fraze="lékárna praha";
$url = "https://www.google.cz/search?".urlencode($fraze)."&start=0";
$html = file_get_contents($url);
?>
Výše uvedený kod 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

Re: Stažení výsledků hledání google přes file_get_contents..

Napsal: stř 3. úno 2016, 01:52
od Bacon
Jaké hlavičky zjistíš, když to vyhledávání provedeš ručně a podíváš se, jaké požadavky byly odeslány. V Chrome nebo Firefoxu na to máš Vývojářské konzole.

Možná by nebylo špatné místo prostého file_get_contents použít nějakou šikovnou knihovnu, která toho umí víc (např. Goutte, který umí i procházet HTML, nebo Guzzle, který se stará jen o komunikaci).

Dobře se takové věci píší i v Pythonu, je to i o něco výkonnější.