Archiwa tagu: requests

Python – pierwszy skrypt

Pora zacząć małą instrukcje z programowaniem.

Zacznę troszkę z grubej rury.

będziemy się bawić pythonem

python

http://kidfocused.com/wp-content/uploads/2013/01/python.jpg

 

Oczywiście chodzi o język programowania a nie puchowe zwierzątko domowe (jak na obrazku wyżej)

jak podaje wikipedia

Pythonjęzyk programowania wysokiego poziomu ogólnego przeznaczenia[3], o rozbudowanym pakiecie bibliotek standardowych[4], którego ideą przewodnią jest czytelność i klarowność kodu źródłowego. Jego składnia cechuje się przejrzystością i zwięzłością[5][6].

Python wspiera różne paradygmaty programowania: obiektowy, imperatywny oraz w mniejszym stopniu funkcyjny. Posiada w pełnidynamiczny system typów i automatyczne zarządzanie pamięcią, będąc w tym podobnym do języków Perl, Ruby, Scheme czy Tcl. Podobnie jak inne języki dynamiczne jest często używany jako język skryptowy. Interpretery Pythona są dostępne na wiele systemów operacyjnych.

 

http://pl.wikipedia.org/wiki/Python

 

jeśli coś z tego rozumiecie to świetnie 🙂 ja dość mało. A tylko i wyłącznie bawię się pythonem bo.. Jarrod (mój mentor IT) w szybkiej rozmowie wybił mi z głowy node.js i powiedział żebym zajął się pythonem.Więc jeśli coś będzie nie tak albo coś się wam nie będzie podobało 🙂 to niżej jest jego blog 😛 (wszystko to jego wina!)

http://jarrodvs.blogspot.com/

 

Do poprawnego działania pythona(na raspberry pi) praktycznie nic nie potrzebujemy. Posiadamy na pokładzie dwie wersje Pythona

python -V
Python 2.7.3

i

python3.2 -V
Python 3.2.3

 

Osobiście nie mam pojęcia czym się różnią wszystkie wersje od siebie (i jakoś nie chce mi się tego szukać)

python korzysta z bibliotek (tak napisali w wiki, więc tak jest) czasami jednak zestaw bibliotek standardowych nam nie wystarcza. I do tego potrzebujemy programu „pip” aby go zainstalować wystarczy komenda:

sudo apt-get install python-pip -y

Całej instalacji nie będę wklejał – wszystko idzie automatycznie i trwa jakieś 30 sekund.

Do pierwszego skryptu potrzebujemy bibliotekę/modół  requests

http://docs.python-requests.org/pl/latest/ (opis jest genialny 😀 )

więc instalujemy ją poleceniem

sudo pip install requests

I tu chciał bym się na chwile zatrzymać. apt-get jest menadżer pakietów dla całego systemu natomiast pip jest menadżerem pakietów tylko dla pythona.

Zaczniemy od czegoś bardzo prostego.

Tworzymy plik
touch wyszukaj.py

edytujemy go

pico wyszukaj.py

i wklejamy

import requests
import sys
r = requests.get('http://searx.me/?format=json&q=%3Apl%20' + sys.argv[1])
z = r.json()
print z["results"][0]["content"]

teraz skrót klawiszowy ctrl+x i „t” potem enter

gdybyśmy chcieli odpalić ten skrypt taki będzie wynik

python wyszukaj.py "Jan Matejko"

i otrzymamy odpowiedź

Jan Alojzy Matejko (ur. 24 czerwca [a] 1838 r. w Krakowie , zm. 1 listopada 1893 r. w Krakowie) – polski malarz , twórca obrazów historycznych i batalistycznych ...

a teraz krok po kroku
co robimy 🙂 (jak już pisałem nie znam się na programowaniu więc większość robię na czuja 🙂

import requests
import sys

Importujemy moduł

requests jest opisana wyżej, ale służy do obsługi informacji z i do internetu( www)

sys  opis jest tu – ale nam jest potrzebne tylko do tego żeby przekazać informacje z linii komend dokładniej chodzi o fragment sys.argv[1] który pobiera informacje z linii komend.

r = requests.get('http://searx.me/?format=json&q=%3Apl%20' + sys.argv[1])

r = – czyli przypisanie zmiennej

requests.get – żądanie pobrania w naszym przypadku
http://searx.me/?format=json&q=%3Apl%20 – Wykorzystujemy genialna wyszukiwarkę searx.me która wyszukuje w wynikach innych wyszukiwarek ( o tym napisze w innym wpisie)

+ sys.argv[1] – wyciąga z lini komend drugi argument który jest w cudzysłowie „Jan Matejko”.

z = r.json()- pokazuje ze to co odbieramy jest w formacie json (chyba)

https://searx.me/?format=json&q=%3Apl%20jan%20matejko  <– takie coś przechodzi do maliny i trzeba to jakoś przetlumaczyć na nasz język

print z["results"][0]["content"] - tłumaczymy i wyciągamy pierwszy wynik do tego nam to wypisuje na ekranie.