De nombreuses personnes qui utilisent Python ont peut-être écrit des robots d'exploration Web. C'est en effet une chose agréable d'obtenir automatiquement des données réseau, et Python nous y parvient. plaisir. Cependant, les robots d'exploration rencontrent souvent divers obstacles de connexion et de vérification, ce qui est frustrant (site Web : il est également très frustrant de rencontrer divers robots d'exploration s'emparant de notre site Web chaque jour ~). Les reptiles et les anti-reptiles sont comme un jeu de chat et de souris. Un pied est plus haut que l'autre et les deux sont enchevêtrés à plusieurs reprises.
En raison de la nature apatride du protocole http, la vérification de la connexion est mise en œuvre en transmettant des cookies. Une fois connecté via le navigateur, le cookie des informations de connexion sera enregistré par le navigateur. La prochaine fois que vous ouvrirez le site Web, le navigateur apportera automatiquement les cookies enregistrés. Tant que les cookies n'ont pas expiré, vous serez toujours connecté au site Web.
Le module browsercookie est un outil permettant d'extraire les cookies enregistrés du navigateur. Il s'agit d'un outil d'exploration très utile qui vous permet de télécharger facilement du contenu Web nécessitant une connexion en chargeant les cookies de votre navigateur dans un objet cookiejar.
Installer
pip install browsercookie
Dans les systèmes Windows, le module sqlite intégré génère une erreur lors du chargement de la base de données FireFox. La version de sqlite doit être mise à jour :
pip install pysqlite
Utilisation
Ce qui suit est un exemple d'extraction de titres à partir d'une page Web :
>>> import re >>> get_title = lambda html: re.findall('<title>(.*?)</title>', html, flags=re.DOTALL)[0].strip()
Ce qui suit se produit lorsque vous n'êtes pas connecté Titre téléchargé :
>>> import urllib2 >>> url = ' >>> public_html = urllib2.urlopen(url).read() >>> get_title(public_html)'Git and Mercurial code management for teams'
Ensuite, utilisez le cookie de navigateur pour obtenir le cookie de FireFox qui s'est connecté à Bitbucket et téléchargez-le :
>>> import browsercookie >>> cj = browsercookie.firefox() >>> opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) >>> login_html = opener.open(url).read() >>> get_title(login_html)'richardpenman / home — Bitbucket'
Ce qui précède est le code pour Python2, réessayez Python3 :
>>> import urllib.request >>> public_html = urllib.request.urlopen(url).read() >>> opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
Vous pouvez voir que votre nom d'utilisateur apparaît dans le titre, indiquant que le module browsercookie a chargé avec succès les cookies de FireFox.
Ce qui suit est un exemple d'utilisation des requêtes. Cette fois, nous chargeons des cookies depuis Chrome. Bien sûr, vous devez vous connecter à Bitbucket avec Chrome au préalable :
>>> import requests >>> cj = browsercookie.chrome() >>> r = requests.get(url, cookies=cj) >>> get_title(r.content)'richardpenman / home — Bitbucket'
Si vous ne le faites pas. Je ne connais pas ou ne me soucie pas de ce navigateur. Avec les cookies dont vous avez besoin, vous pouvez faire ceci :
>>> cj = browsercookie.load() >>> r = requests.get(url, cookies=cj) >>> get_title(r.content)'richardpenman / home — Bitbucket'
Support
Actuellement, ce module prend en charge les plateformes suivantes :
Chrome : Linux, OSX, Windows
Firefox : Linux, OSX, Windows
Actuellement, il n'y a pas beaucoup de versions de navigateur testées par ce module. Vous pouvez rencontrer des problèmes lors de l'utilisation. Vous pouvez soumettre des questions. à l'auteur :
https ://bitbucket.org/richardpenman/browsercookie/
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!