Skocz do zawartości

Python, podstawowe używanie stron internetowych


Rekomendowane odpowiedzi

Opublikowano

Cześć, kiedyś już pisałem, że buduję własnego pół-inteligentnego robota. Mam już gotowy cały szkielet który przetwarza słowa z nagrania na tekst i potrafi wyłapać co mam na myśli. Przypuśćmy, że mam zmienną czas=1, czyli chce sprawdzić która godzina, ale mam taki kaprys żeby to sprawdzić przez internet, przez google. Jak wysłać zapytanie do googla która godzina, ale jeszcze tak by informacja ta została zwrócona do programu i mogła być odczytana?

Opublikowano

Właściwie to tak, chociaż myślałem, że idzie to zrobić w stylu wyszukania w google "godzina" i odczytania pierwszego wyniku, bez API. Ale dzięki za pomoc ;)

Opublikowano

Idzie to zrobić w ten sposób, ale to jest mało optymalne rozwiązanie i bardziej skomplikowane :D W zasadzie wystarczy wczytać stronę i wychaczyć treść odpowiedniej sekcji na stronie(tej która zawiera godzinę).

Opublikowano

Możesz użyć jakiejś biblioteki np. lxml i sparsować odpowiedź od serwera. np.
 

from io import StringIO
from lxml import etree
from httplib import HTTPSConnection

conn = HTTPSConnection("perelki.net")
conn.request("GET", "/random")
res = conn.getresponse()
data = unicode(res.read(), "utf-8")

parser = etree.HTMLParser()
doc = etree.parse(StringIO(data), parser)
root = doc.getroot()

joke = root.xpath("body/div[@class='content']/div[@class='container']")[0]
print '\n'.join(joke.xpath("text()")).strip()

 

Opublikowano

Dzięki wielkie za pomoc, działa elegancko, poczytam sobie jeszcze co poniektóre funkcje robią tak dla zrozumienia, ewentualnie tu dopytam.

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...