OK, voici l'en-tête (juste un exemple) info je suis arrivé d'en-tête en direct HTTP lors de la connexion à un compte:Comment obtenir mécaniser demandes de regarder comme ils proviennent d'un vrai navigateur
http://example.com/login.html
POST /login.html HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 GTB7.1 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://example.com
Cookie: blahblahblah; blah = blahblah
Content-Type: application/x-www-form-urlencoded
Content-Length: 39
username=shane&password=123456&do=login
HTTP/1.1 200 OK
Date: Sat, 18 Dec 2010 15:41:02 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.2.14
Set-Cookie: blah = blahblah_blah; expires=Sun, 18-Dec-2011 15:41:02 GMT; path=/; domain=.example.com; HttpOnly
Set-Cookie: blah = blahblah; expires=Sun, 18-Dec-2011 15:41:02 GMT; path=/; domain=.example.com; HttpOnly
Set-Cookie: blah = blahblah; expires=Sun, 18-Dec-2011 15:41:02 GMT; path=/; domain=.example.com; HttpOnly
Cache-Control: private, no-cache="set-cookie"
Expires: 0
Pragma: no-cache
Content-Encoding: gzip
Vary: Accept-Encoding
Content-Length: 4135
Keep-Alive: timeout=10, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
Normalement, je code comme ceci:
import mechanize
import urllib2
MechBrowser = mechanize.Browser()
LoginUrl = "http://example.com/login.html"
LoginData = "username=shane&password=123456&do=login"
LoginHeader = {"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 GTB7.1 (.NET CLR 3.5.30729)", "Referer": "http://example.com"}
LoginRequest = urllib2.Request(LoginUrl, LoginData, LoginHeader)
LoginResponse = MechBrowser.open(LoginRequest)
Le code ci-dessus fonctionne très bien. Ma question est, ai-je aussi besoin d'ajouter ces lignes suivantes (et plus dans les infos de l'en-tête précédent) dans LoginHeader
pour faire ressembler vraiment à la navigation de firefox, pas mécaniser? Quelles parties/combien d'informations d'en-tête doivent être usurpées pour qu'elles aient l'air «réelles»?
Merci encore, mate! – Shane
Existe-t-il un outil pour surveiller vos connexions réseau de scripts? Donc je connaîtrais les données transmises entre le serveur et mon script. – Shane
JavaScript? Live HTTP Headers devrait le faire. Script Python? Plus dur, mais un logiciel de reniflage de paquets comme WireShark le ferait. Dans les deux cas, vous obtiendrez beaucoup de bruit non-script, mais il peut encore vous donner beaucoup d'informations utiles. – TryPyPy