国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python爬蟲使用瀏覽器的cookies:browsercookie

xuexiangjys / 2937人閱讀

摘要:爬蟲和反爬蟲就是一個貓和老鼠的游戲,道高一尺魔高一丈,兩者反復糾纏。由于協議的無狀態性,登錄驗證都是通過傳遞來實現的。通過瀏覽器登錄一次,登錄信息的是就會被瀏覽器保存下來。模塊就是這樣一個從瀏覽器提取保存的的工具。

很多用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("(.*?)", 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"

接下來使用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 — 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 — Bitbucket"

如果你不知道或不關心那個瀏覽器有你需要的cookies,你可以這樣操作:

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

支持

目前,該模塊支持以下平臺:

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

目前該模塊測試過的瀏覽器版本還不是很多,你使用過程中可能會遇到問題,可以向作者提交問題:

https://bitbucket.org/richard...

文章來源于:猿人學網站的python教程。

版權申明:若沒有特殊說明,文章皆是猿人學原創,沒有猿人學授權,請勿以任何形式轉載。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/43725.html

相關文章

  • Python3網絡爬蟲實戰---18、Session和Cookies

    摘要:而在中對象用來存儲特定用戶會話所需的屬性及配置信息。當會話過期或被放棄后,服務器將終止該會話。,即該是否僅被使用安全協議傳輸。安全協議有,等,在網絡上傳輸數據之前先將數據加密。 上一篇文章:Python3網絡爬蟲實戰---17、爬蟲基本原理下一篇文章:Python3網絡爬蟲實戰---19、代理基本原理 在瀏覽網站的過程中我們經常會遇到需要登錄的情況,有些頁面只有登錄之后我們才可以訪問...

    SHERlocked93 評論0 收藏0
  • Python入門網絡爬蟲之精華版

    摘要:學習網絡爬蟲主要分個大的版塊抓取,分析,存儲另外,比較常用的爬蟲框架,這里最后也詳細介紹一下。網絡爬蟲要做的,簡單來說,就是實現瀏覽器的功能。 Python學習網絡爬蟲主要分3個大的版塊:抓取,分析,存儲 另外,比較常用的爬蟲框架Scrapy,這里最后也詳細介紹一下。 首先列舉一下本人總結的相關文章,這些覆蓋了入門網絡爬蟲需要的基本概念和技巧:寧哥的小站-網絡爬蟲,當我們在瀏覽器中輸入...

    Bmob 評論0 收藏0
  • Python爬蟲理論之cookie驗證,不回顧下歷史,套路都不知道怎么來

    摘要:在發明之初,為了幫助服務器同步網頁上的用戶信息,同時保存用戶操作,以此減輕服務器壓力。由正在瀏覽的網站創建的被稱為第一方。這些第三方怎么來的呢他們又有什么作用了。寫在最后了解歷史,有助于,我們更好的定位問題。 ...

    fuyi501 評論0 收藏0
  • Python 從零開始爬蟲(九)——模擬登錄,cookie使用

    摘要:所以只要得到登錄后的并必要時進行更新,服務器就會認定其為登錄狀態。看看人家知乎,加密到連名字都沒有了,還混淆,如何下手綜上,適用于沒有加密的登錄或者加密算法比較簡單并且不常更新的網站。遇上無解的加密算法要么手操拷貝,要么請大佬出場。 某些網站,登錄和沒登錄,用戶的權限是不一樣的,帳號登錄之后才能獲取更多的信息。更有甚者一上來就是登錄界面,不登錄就不給你進去(如p站)。爬取目標不用登錄固...

    edgardeng 評論0 收藏0
  • Python定向爬蟲,模擬新浪微博登錄!

    摘要:當我們試圖從新浪微博抓取數據時,我們會發現網頁上提示未登錄,無法查看其他用戶的信息。三模擬登錄下面將介紹使用獲取新浪微博,然后使用提交從而實現模擬登錄。 當我們試圖從新浪微博抓取數據時,我們會發現網頁上提示未登錄,無法查看其他用戶的信息。模擬登錄是定向爬蟲制作中一個必須克服的問題,只有這樣才能爬取到更多的內容。 showImg(https://segmentfault.com/img/...

    isaced 評論0 收藏0

發表評論

0條評論

xuexiangjys

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<