Vyhlkedávání s request - Python

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod Luka35 2. 4. 2019 16:33

Dobrý den, funkci request mohu použít pouze s rozhraním api, například zde: https://api.github.com/user, nebo můžu použít požadavek na zápis na klasickou stránku jako http://www.google.com s tímto kódem...?
(Po vyhledání "Hello World" na googlu by se měl vypsat zdrojový kód výsledků vyhledání)

Kód: Vybrat vše
import requests
Data = {
"q": "Hello world",       
}
page = request.post ("https://www.google.com/", data = Data)
print (page.text)


#q je name input class googlu,
Hello world je je text, který chci vyhledat.
Díky
Luka35
Kolemjdoucí

Odeslat příspěvekod Wikan 2. 4. 2019 16:40

S tímhle kódem asi ne. Vyhledávání je GET a nikoliv POST request.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Luka35 2. 4. 2019 16:41

Kód: Vybrat vše
import requests
Data = {
"q": "Hello world",
}
page = request.get("https://www.google.com/", response = Data)
print (page.text)


No nějaký kód se mi vypisuje, ale, když to udělám manuálně- napíšu do googlu "Hello world", vyhledám a otevřu zdrojový kód, vypadá úplně jinak, než ten pomocí requestu. Jak to?
Luka35
Kolemjdoucí

Odeslat příspěvekod Wikan 2. 4. 2019 16:48

Kód: Vybrat vše
import requests
page = requests.get("https://www.google.com/?q=Hello%20world")
print (page.text)
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Luka35 2. 4. 2019 17:02

To ano, chtěl bych to ale udělat, tak jak jsem psal. Šlo by to ale vůbec?
Konkrétně mi jde o to, že často se řetězec - v tomto případě Hello World nezobrazuje v url.
Díky

Mám na mysli jiné stránky než google, kde se například zobrazí dále jen search, nikoli informace o hledaném slovu.
Luka35
Kolemjdoucí

Odeslat příspěvekod Wikan 2. 4. 2019 17:09

Nechápu, proč když se ptáš na jiné stránky, tak máš v dotazu Google :roll: Není nad to, ptát se na něco jiného, než chceš vědět.
Na těch jiných stránkách zase použij POST.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Luka35 2. 4. 2019 17:23

Dobře, řekněme tedy, že na této stránce budu chtít najít výraz "maturity".
Zde je právě ten problém, že při vyhledávání se slovo nezaznamená do url...
Šlo by to tedy takto?

Kód: Vybrat vše
import requests
import time
Data = {
    "text": "maturity"
    }
page = requests.get("https://www.sspbrno.cz/search.php", params=Data)
print(page.text)
Luka35
Kolemjdoucí

Odeslat příspěvekod Luka35 3. 4. 2019 20:20

Nevíte někdo?
Luka35
Kolemjdoucí

Odeslat příspěvekod Wikan 3. 4. 2019 20:22

Psal jsem, že máš použít POST.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Luka35 3. 4. 2019 20:31

I tak se mi vypisuje jiný kód

Kód: Vybrat vše
import requests
import time
Data = {
    "text": "maturity"
    }
page = requests.post("https://www.sspbrno.cz/search.php", data=Data)
print(page.text)


Takto, mohu vůbec udělat tu věc kterou popisuji pomocí requestu?
Luka35
Kolemjdoucí

Odeslat příspěvekod Wikan 4. 4. 2019 06:48

Ono ti to vypisuje jiný text hlavně proto, že ten formulářový prvek se jmenuje "rstext" a ne jenom "text".
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod JirkaVejrazka 4. 4. 2019 09:47

mohu vůbec udělat tu věc kterou popisuji pomocí requestu?


Ano, muzes. Musis ale poslat uplne presne stejne parametry, jako posle stranka. Neco uz ti napsal Wikan. Ja jenom pridam, ze je uplne klidne mozne, ze si stranka bude kontrolovat pritomnost vsech parametru. Ty posilas jeden, stranka nekolik.
JirkaVejrazka
Mírně pokročilý

Odeslat příspěvekod Luka35 4. 4. 2019 16:00

Ano, díky. Už to jede.
Luka35
Kolemjdoucí


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků