Python搜寻器使用浏览器cookie:browsercookie进程分析

电脑杂谈  发布时间:2020-10-07 07:06:22  来源:网络整理

浏览器 cookies_浏览器 cookies_cookies浏览器

Python搜寻器使用浏览器cookie:browsercookie进程分析

更新时间:2019年10月22日09:26:26作者:Python小弟弟

本文主要介绍Python搜寻器使用的浏览器cookie:browsercookie,它通过示例代码进行了详细介绍,并且对每个人的学习或工作都有一定的参考学习价值。有需要的朋友可以参考

许多使用Python的人可能已经编写了Web搜寻器。自动获取网络数据确实是一种乐趣,Python可以帮助我们很好地实现这种乐趣。但是,爬虫经常遇到各种登录和验证障碍,这令人沮丧(网站:每天遇到各种爬虫以捕获我们的网站,这也非常令人沮丧〜)。爬行动物和抗爬行动物是猫和老鼠的游戏。路是一英尺高,魔鬼是一英尺高。

由于http协议的无状态性质,因此通过传递cookie来实现登录身份验证。通过浏览器登录一次,浏览器将保存登录信息的cookie。下次您打开网站时,浏览器将自动带来保存的cookie。只有Cookie尚未过期,您仍然可以登录网站。

浏览器 cookies_cookies浏览器_浏览器 cookies

browsercookie模块是用于从浏览器提取保存的cookie的工具。这是一个非常有用的搜寻器工具。通过将浏览器的cookie加载到cookiejar对象中,它可以使您轻松下载需要登录的网页内容。

安装

点安装浏览器cookie

在Windows中,加载FireFox时,内置的sqlite模块将引发错误。需要更新sqlite的版本:

pip安装pysqlite

cookies浏览器_浏览器 cookies_浏览器 cookies

使用方法

以下是从网页提取标题的示例:

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

以下是未登录时下载的标题:

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

浏览器 cookies_cookies浏览器_浏览器 cookies

接下来,使用浏览器cookie从已登录到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 — Bitbucket'

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

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

您可以看到您的用户名出现在标题中,表明browsercookie模块已成功从FireFox加载了cookie。编辑器组织了一组Python资料和PDF。如果您需要Python学习资料,则可以添加一个学习组:631441315。无论如何,我很空闲,最好学习一些东西~~

浏览器 cookies_cookies浏览器_浏览器 cookies

以下是使用请求的示例。这次我们从Chrome加载Cookie。当然,您需要提前使用Chrome登录到Bitbucket:

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

如果您不知道或不在乎哪个浏览器具有所需的Cookie,则可以执行以下操作:

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

支持

当前,该模块支持以下平台:

Chrome:Linux,OSX,Windows

Firefox:Linux,OSX,Windows

以上是本文的全部内容,希望对大家的学习有所帮助,并希望您能更多地支持Scripthome。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/shumachanpin/article-324466-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...