•   欢迎来到21NN网.
  •   请记住本站网址www.21nn.cn

Python爬虫运用浏览器的cookies:browsercookie【Python教程】,cookies

摘要: 许多用Python的人能够都写过收集爬虫,自动化猎取收集数据确实是一件使人愉悦的事变,而Python很好的协助我们到达这类愉悦。但是,爬虫常常要遇到种种登录、考证的阻止,让人心灰意懒(网站:天天遇到林...
许多用Python的人能够都写过收集爬虫,自动化猎取收集数据确实是一件使人愉悦的事变,而Python很好的协助我们到达这类愉悦。但是,爬虫常常要遇到种种登录、考证的阻止,让人心灰意懒(网站:天天遇到林林总总的爬虫抓我们网站,也很让人心灰意懒~)。爬虫和反爬虫就是一个猫和老鼠的游戏,道高一尺魔高一丈,二者重复胶葛。

因为http协定的无状态性,登录考证都是经由过程通报cookies来完成的。经由过程浏览器登录一次,登录信息的cookie是就会被浏览器保留下来。下次再翻开该网站时,浏览器自动带上保留的cookies,只要cookies还未逾期,关于网站来讲你就照样登录状态的。

browsercookie模块就是如许一个从浏览器提取保留的cookies的东西。它是一个很有效的爬虫东西,经由过程加载你浏览器的cookies到一个cookiejar对象内里,让你轻松下载须要登录的网页内容。

装置

pip install browsercookie

在Windows体系中,内置的sqlite模块在加载FireFox数据库时会抛出毛病。须要更新sqlite的版本:
pip install pysqlite

运用方法

下面是从网页提取题目的例子:

>>> import re
>>> get_title = lambda html: re.findall('<title>(.*?)</title>', html, flags=re.DOTALL)[0].strip()

下面是未登录状态下下载获得的题目:

>>> import urllib2
>>> url = ' 
>>> public_html = urllib2.urlopen(url).read()
>>> get_title(public_html)'Git and Mercurial code management for teams'

接下来运用browsercookie从登录过Bitbucket的FireFox内里猎取cookie再下载:

>>> import browsercookie
>>> cj = browsercookie.firefox()
>>> opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
>>> login_html = opener.open(url).read()
>>> get_title(login_html)'richardpenman / home &mdash; Bitbucket'

上面是Python2的代码,再尝尝 Python3:

>>> import urllib.request
>>> public_html = urllib.request.urlopen(url).read()
>>> opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))

你能够看到你的用户名出现在title内里了,申明browsercookie模块胜利从FireFox加载了cookies。

下面是运用requests的例子,此次我们从Chrome内里加载cookies,固然你须要事先用Chrome登录Bitbucket:

>>> import requests
>>> cj = browsercookie.chrome()
>>> r = requests.get(url, cookies=cj)
>>> get_title(r.content)'richardpenman / home &mdash; Bitbucket'

假如你不知道或不关心谁人浏览器有你须要的cookies,你能够如许操纵:

>>> cj = browsercookie.load()
>>> r = requests.get(url, cookies=cj)
>>> get_title(r.content)'richardpenman / home &mdash; Bitbucket'

支撑

现在,该模块支撑以下平台:

Chrome: Linux, OSX, Windows
Firefox: Linux, OSX, Windows

现在该模块测试过的浏览器版本还不是许多,你运用过程中能够会遇到题目,能够向作者提交题目:

https://bitbucket.org/richardpenman/browsercookie/

以上就是Python爬虫运用浏览器的cookies:browsercookie的细致内容,更多请关注ki4网别的相干文章!

分享到:

发表评论

评论列表

还没有评论,快来说点什么吧~

公众号二维码

微信公众号