9
votes

Comment obtenir des demandes de mécaniser à ressembler à leur origine d'un vrai navigateur

OK, voici l'en-tête (juste un exemple) Info de l'en-tête HTTP en direct lors de la connexion à un compte: xxx pré>

normalement, je code comme ceci: P>

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


0 commentaires

3 Réponses :


7
votes

Cela dépend de ce que vous essayez de "fou". Vous pouvez essayer certains services en ligne qui font de simples agents utilisateur reniflant pour évaluer votre succès:

http://browserspy.dk/browser.php

http://www.browserscope.org (recherche de 'nous pensons que vous utilisez ... ')

http://www.browserscope.org/ua

http://panopticlick.eff.org/ -> vous aidera à choisir un "trop ​​courant suivre les "options

http://networking.ringofsaturn.com/tools/browser.php < / p>

Je crois qu'un programmeur déterminé pourrait détecter votre jeu, mais de nombreux analyseurs et outils de journal ne seraient pas une fois que vous avez écho à ce que votre navigateur réel envoie.

Une chose que vous devriez considérer, c'est que le manque de JS pourrait élever des drapeaux rouges, alors capturer des en-têtes envoyés avec JS handicapés.


2 commentaires

Y a-t-il un outil pour surveiller vos connexions réseau de scripts? Je saurais donc que les données transmises entre le serveur et mon script.


JavaScript? Les en-têtes HTTP en direct doivent le faire. Script Python? Plus fort, mais un logiciel de reniflement de paquet comme Wirehark le ferait. Dans les deux cas, vous obtiendrez beaucoup de bruit non-script, mais cela peut toujours vous donner beaucoup d'informations utiles.



6
votes

Voici comment vous définissez l'agent utilisateur pour toutes les demandes effectuées par MECANIZE.Browser

br.open('http://yoursite.com/login')
br.select_form(nr=1) # select second form in page (0 indexed)
br['username'] = 'yourUserName' # inserts into form field with name 'username'
br['password'] = 'yourPassword'
response = br.submit()
if 'Welcome yourUserName' in response.get_data():
    # login was successful
else:
    # something went wrong
    print response.get_data()


0 commentaires

0
votes

Si vous êtes paranoïaque sur la conservation des robots / scripts / des navigateurs non réels, vous recherchez des objets comme l'ordre des demandes HTTP, laissez une ressource à ajouter à JavaScript. Si cette ressource n'est pas demandée, ou demandée avant le JavaScript - alors vous savez que c'est un "faux" navigateur. Vous pouvez également examiner le nombre de demandes par connexion (Garder-vivant) ou simplement vérifier que tous les fichiers CSS de la première page (étant donné qu'ils sont en haut du HTML) sont chargés.

ymmv mais il peut devenir assez encombrant de simuler suffisamment pour rendre un "faux" navigateur passe comme un "réel" (utilisé par les humains).


0 commentaires