Donnerstag Jan. 17, 2013

PyQuery - JQuery in Python

Und weil wir vorher gerade bei HTTP-Requests waren: Wer HTML-Seiten manipulieren oder durchstöbern möchte, der tut das mit JavaScript oft mit JQuery. Gleiches geht auch mit Python mit PyQuery. Es wird leider nicht der komplette Funktionsumfang von JQuery unterstützt, aber es ist sehr viel dabei. Da kann man die meisten anderen HTML-Tools oftmals gleich in die Tonne treten ;-)

Python Requests HTTP Lib

Also wer mit Python HTTP-Requests machen möchte, der sollte sich mal unbedingt Requests anschauen und urllib2 gleich vergessen. Die Implementierung ist einfach super und sowas von elegant und effektiv, das sieht man nicht sehr oft. Beispiel gefällig?

>>> r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json; charset=utf8'

>>> r.encoding
'utf-8'

>>> r.text
u'{"type":"User"...'

>>> r.json() 
{u'private_gists': 419, u'total_private_repos': 77, ...} 

>>> r = requests.get('https://github.com/timeline.json')
>>> r.text
'[{"repository":{"open_issues":0,"url":"https://github.com/...

Also wenn das nicht einfach und effektiv ist... :-)

Passed dazu gibt es dann noch requests-cache. Das ist ein transparenter Cache für die Requests-Lib. Ihn interessieren keine HTTP-Header, sondern er cached einen Seitenabruf solange man die Cachezeit angegeben hat. Sehr praktisch wenn man externe Resourcen während des Debuggens miteinbeziehen muss. Macht die Sache erheblich schneller.