IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: HTTP/1.0 503 Service Unavailable - requesty na Google

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Michal Dvořáček:15.3.2018 9:28

Zdravím. Vytvořil jsem script na parsování publikací z profilů na Google Scholar pomocí SimpleHtmlDom (takže ty data stahuju funkcí file_get_contents), ale po nějakém testování jsem začal dostávat :

failed to open stream: HTTP request failed! HTTP/1.0 503 Service Unavailable

Už jsem tak nějak našel, že to je způsobený moc requestama na Google, což se mu nelíbí, ale nenašel jsem moc, jestli a jak se dá tenhle problém vyřešit?
Zkoušel jsem vytvořit na Googlu Api key, kterej předávám jako poslední parametr v url, ale nepomohlo. Pak jsem zkusil dávat Sleep, abych tam ty požadavky neposílal hned po sobě, ale také nepomohlo.
Možná, že na tyhle řešení už je pozdě a budou fungovat jen až Google začne zase odpovídat, ale jak udělat to, aby začal? Nevíte někdo?

Děkuji za každou radu a poznámku!

 
Odpovědět
15.3.2018 9:28
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na Michal Dvořáček
Petr Čech:15.3.2018 10:46

To, že Google nechce, aby mu někam chodili boti většinou znamená, že tam boti chodit nebudou...

Nahoru Odpovědět
15.3.2018 10:46
the cake is a lie
Avatar
Odpovídá na Petr Čech
Michal Dvořáček:15.3.2018 10:55

No, on tam chvíli právě chodil. Chápu, že nechce abych mu tam posílal stovky požadavků v jeden moment, ale když jsem mu tam poslal ten požadavek jen jeden, tak odpověděl.
Tak jsem se právě chtěl dozvědět jak udělat, aby mě znova pustil alespoň na ten jeden požadavek.

 
Nahoru Odpovědět
15.3.2018 10:55
Avatar
David Jančík
Vlastník
Avatar
Odpovídá na Michal Dvořáček
David Jančík:15.3.2018 11:54

Ty bany trvají většinou pár dní. Pokud to chceš prozatímně obejít, tak můžeš zkusit jinou IP (mobilní hotspot, VPN,...). Dále bych zkusil posílat v hlavičce požadavku nějakého UserAgenta a Cookies + pokud na lokálu nemáš HTTPS ještě je dobrý tam setnout verify_peer na false. To při hodně případech pomáhá, protože působíš víc jako člověk.

Konkrétně se to dělá se SimpleHtmlDom takto:

$arrContextOptions = [
        'ssl' => [
                'verify_peer' => false,
                'verify_peer_name' => false
        ],
        'http' => [
                'method' => "GET",
                'header' => "Accept-language: en\r\n" .
                        "User-Agent:    Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6\r\n".
                        "Cookie: foo=bar\r\n"
        ]
];

$html = file_get_html($url, false, stream_context_create($arrContextOptions));

Bližší info můžeš najít na git repu scholar.py, což je Python parser pro Google Scholar: https://github.com/…py/issues/52

Každopádně data parsovat pouze pro soukromé a neveřejné účely a ideálně jednorázově.
https://academia.stackexchange.com/…ta-if-needed

PS: API key je ti tam k ničemu, protože ta služba žádné API nemá.

Editováno 15.3.2018 12:03
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
15.3.2018 11:54
Zapomeň, že je to nemožné a udělej to ;)
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.