1. 程式人生 > >Python爬蟲入門六之Cookie的使用

Python爬蟲入門六之Cookie的使用

大家好哈,上一節我們研究了一下爬蟲的異常處理問題,那麼接下來我們一起來看一下Cookie的使用。

為什麼要使用Cookie呢?

Cookie,指某些網站為了辨別使用者身份、進行session跟蹤而儲存在使用者本地終端上的資料(通常經過加密)

比如說有些網站需要登入後才能訪問某個頁面,在登入之前,你想抓取某個頁面內容是不允許的。那麼我們可以利用Urllib2庫儲存我們登入的Cookie,然後再抓取其他頁面就達到目的了。

在此之前呢,我們必須先介紹一個opener的概念。

1.Opener

當你獲取一個URL你使用一個opener(一個urllib2.OpenerDirector的例項)。在前面,我們都是使用的預設的opener,也就是urlopen。它是一個特殊的opener,可以理解成opener的一個特殊例項,傳入的引數僅僅是url,data,timeout。

如果我們需要用到Cookie,只用這個opener是不能達到目的的,所以我們需要建立更一般的opener來實現對Cookie的設定。

2.Cookielib

cookielib模組的主要作用是提供可儲存cookie的物件,以便於與urllib2模組配合使用來訪問Internet資源。Cookielib模組非常強大,我們可以利用本模組的CookieJar類的物件來捕獲cookie並在後續連線請求時重新發送,比如可以實現模擬登入功能。該模組主要的物件有CookieJar、FileCookieJar、MozillaCookieJar、LWPCookieJar。

它們的關係:CookieJar —-派生—->FileCookieJar  —-派生—–>MozillaCookieJar和LWPCookieJar

1)獲取Cookie儲存到變數

首先,我們先利用CookieJar物件實現獲取cookie的功能,儲存到變數中,先來感受一下

12345678910111213import urllib2import cookielib#宣告一個CookieJar物件例項來儲存cookiecookie=cookielib.CookieJar()#利用urllib2庫的HTTPCookieProcessor物件來建立cookie處理器handler=urllib2.HTTPCookieProcessor(cookie)#通過handler來構建openeropener=urllib2.build_opener
(handler)#此處的open方法同urllib2的urlopen方法,也可以傳入requestresponse=opener.open('http://www.baidu.com')foritem incookie:print'Name = '+item.nameprint'Value = '+item.value

我們使用以上方法將cookie儲存到變數中,然後打印出了cookie中的值,執行結果如下

1 2 3 4 5 6 7 8 9 10 Name=BAIDUID Value=B07B663B645729F11F659C02AAE65B4C:FG=1 Name=BAIDUPSID Value=B07B663B645729F11F659C02AAE65B4C Name=H_PS_PSSID Value=12527_11076_1438_10633 Name=BDSVRTM Value=0 Name=BD_HOME Value=0

2)儲存Cookie到檔案

在上面的方法中,我們將cookie儲存到了cookie這個變數中,如果我們想將cookie儲存到檔案中該怎麼做呢?這時,我們就要用到

FileCookieJar這個物件了,在這裡我們使用它的子類MozillaCookieJar來實現Cookie的儲存

123456789101112131415import cookielibimport urllib2#設定儲存cookie的檔案,同級目錄下的cookie.txtfilename='cookie.txt'#宣告一個MozillaCookieJar物件例項來儲存cookie,之後寫入檔案cookie=cookielib.MozillaCookieJar(filename)#利用urllib2庫的HTTPCookieProcessor物件來建立cookie處理器handler=urllib2

相關推薦

6.Python爬蟲入門Cookie的使用

expires cookielib spa result hat 即使 card rec 其他 大家好哈,上一節我們研究了一下爬蟲的異常處理問題,那麽接下來我們一起來看一下Cookie的使用。 為什麽要使用Cookie呢? Cookie,指某些網站為了辨別用戶身份、進行se

Python爬蟲入門Cookie的使用

大家好哈,上一節我們研究了一下爬蟲的異常處理問題,那麼接下來我們一起來看一下Cookie的使用。 為什麼要使用Cookie呢? Cookie,指某些網站為了辨別使用者身份、進行session跟蹤而儲存在使用者本地終端上的資料(通常經過加密) 比如說有

python爬蟲入門() Scrapy框架原理介紹

Scrapy框架 Scrapy簡介 Scrapy是用純Python實現一個為了爬取網站資料、提取結構性資料而編寫的應用框架,用途非常廣泛。 框架的力量,使用者只需要定製開發幾個模組就可以輕鬆的實現一個爬蟲,用來抓取網頁內容以及各種圖片,非常之方便。 Scrapy 使用了 Twi

Python爬蟲入門綜述

復用 智能 實現 進一步 -a web 蜘蛛 urllib 機器 首先爬蟲是什麽? 網絡爬蟲(又被稱為網頁蜘蛛,網絡機器人,在FOAF社區中間,更經常的稱為網頁追逐者),是一種按照一定的規則,自動的抓取萬維網信息的程序或者腳本。 根據我的經驗,要學習Python爬蟲,我們要

Python爬蟲入門Urllib庫的基本使用

res 瀏覽器中 必須 答案 文件的 網頁 one .com 屏幕截圖 1.分分鐘扒一個網頁下來 怎樣扒網頁呢?其實就是根據URL來獲取它的網頁信息,雖然我們在瀏覽器中看到的是一幅幅優美的畫面,但是其實是由瀏覽器解釋才呈現出來的,實質它是一段HTML代碼,加 JS、CSS

Python爬蟲入門Urllib庫的高階用法

1.設定Headers 有些網站不會同意程式直接用上面的方式進行訪問,如果識別有問題,那麼站點根本不會響應,所以為了完全模擬瀏覽器的工作,我們需要設定一些Headers 的屬性。 首先,開啟我們的瀏覽器,除錯瀏覽器F12,我用的是Chrome,開啟網路監聽,示意如下,

Python爬蟲入門URLError異常處理

大家好,本節在這裡主要說的是URLError還有HTTPError,以及對它們的一些處理。 1.URLError 首先解釋下URLError可能產生的原因: 網路無連線,即本機無法上網連線不到特定的伺服器伺服器不存在 在程式碼中,我們需要用try-except語句來包

Python爬蟲入門爬蟲基礎瞭解

1.什麼是爬蟲 爬蟲,即網路爬蟲,大家可以理解為在網路上爬行的一直蜘蛛,網際網路就比作一張大網,而爬蟲便是在這張網上爬來爬去的蜘蛛咯,如果它遇到資源,那麼它就會抓取下來。想抓取什麼?這個由你來控制它咯。 比如它在抓取一個網頁,在這個網中他發現了一條道路,其實就是指向網

Python爬蟲入門正則表示式

在前面我們已經搞定了怎樣獲取頁面的內容,不過還差一步,這麼多雜亂的程式碼夾雜文字我們怎樣把它提取出來整理呢?下面就開始介紹一個十分強大的工具,正則表示式! 1.瞭解正則表示式 正則表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些

python 爬蟲入門正則表達式 一

簡單 換行 find www. ever page oct search utf python 正則表達式知識點正則 常用符號. : 匹配任意字符,換行符除外* : 匹配前一個字符 0 次或者無限次? : 匹配前一個字符 0次或者1次.* : 貪心算法.*? :非貪心算

Python 爬蟲入門爬取妹子圖

Python 爬蟲入門之爬取妹子圖 來源:李英傑  連結: https://segmentfault.com/a/1190000015798452   聽說你寫程式碼沒動力?本文就給你動力,爬取妹子圖。如果這也沒動力那就沒救了。   GitHub 地址:&

Python爬蟲入門五Handler處理器和自定義Opener

Handler處理器和自定義Opener opener是 urllib.OpenerDirector 的例項,我們之前一直都在使用的urlopen,它是一個特殊的opener(也就是模組幫我們構建好的) 但是基本的urlopen()方法不支援代理、cookie等其他的HTTP/HTTPS高階功能。

Python爬蟲入門二HTTP(HTTPS)請求與響應

HTTP和HTTPS HTTP協議(HyperText Transfer Protocol,超文字傳輸協議):是一種釋出和接收 HTML頁面的方法。 HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)簡單講是HTTP的安全版,在HTTP下

python爬蟲入門————————————————案例演練

原始碼 """ Version 1.1.0 Author lkk Email [email protected] date 2018-11-25 18:39 DESC 電影天堂 """ # https://www.dy2018.com/ from urllib import

python爬蟲入門————————————————第三節requests詳解

1.下載安裝 (1)命令安裝方式 Windows:開啟命令視窗行,直接執行包管理命令安裝          pip install requests   or  essy_install requests

Python爬蟲入門豆瓣短評爬取

採用工具pyCharm,python3,工具的安裝在這就不多說了,之所以採用python3是因為python2只更新維護到2020年。 新建python專案 File-Settings-project interpreter,點右上角+號,安裝requests,lx

python爬蟲入門————————————————第四節--使用bs4語法獲取資料

1.裝備工作:模組安裝 1.1命令安裝方式:(開發環境:python3.6環境) 官方文件:https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.html 官方文件中文版:https://www.crummy.com/

python爬蟲入門爬取小說.md

新手教學:用Python爬取小說 我們在學習Python之餘總想著讓其更具趣味性,可以更好地學習。下面我將講解如何去從網站中爬取我們想看的小說。讓我們枯燥無聊的學習生涯稍微多些趣味。 需要只是一點點對requests庫、Beautiful庫及python基礎知識

Python爬蟲入門教程 8-100 蜂鳥網圖片爬取

asyncio esp 分享圖片 0.10 結果 .text win int lang 啰嗦兩句 前幾天的教程內容量都比較大,今天寫一個相對簡單的,爬取的還是蜂鳥,依舊采用aiohttp 希望你喜歡爬取頁面https://tu.fengniao.com/15/ 本篇教程還

python爬蟲入門八:多程序/多執行緒 python佇列Queue Python多執行緒(2)——執行緒同步機制 python學習筆記——多程序中共享記憶體Value & Array python 多程序 Python多程序 Python 使用multiprocessing 特別耗記

什麼是多執行緒/多程序 引用蟲師的解釋: 計算機程式只不過是磁碟中可執行的,二進位制(或其它型別)的資料。它們只有在被讀取到記憶體中,被作業系統呼叫的時候才開始它們的生命期。 程序(有時被稱為重量級程序)是程式的一次執行。每個程序都有自己的地址空間,記憶體,資料棧以及其它記錄其執行軌跡的輔助資料