日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python爬虫模块取cookie_[ Python爬虫实战 ] Python使用cookies - pytorch中文网

發(fā)布時(shí)間:2025/4/5 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python爬虫模块取cookie_[ Python爬虫实战 ] Python使用cookies - pytorch中文网 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、Cookie登錄簡介

Cookie是一種服務(wù)器發(fā)送給瀏覽器的一組數(shù)據(jù),用于瀏覽器跟蹤用戶,并訪問服務(wù)器時(shí)保持登錄狀態(tài)等功能。基本所有的網(wǎng)站,我們都可以通過操作Cookie來進(jìn)行模擬登錄,所以我們只要通過靈活的操作Cookie就可以實(shí)現(xiàn)登錄!

二、為什么要登錄

在很多時(shí)候,一些網(wǎng)站要求我們登錄之后才能訪問或者我們需要通過爬蟲抓取我們的個(gè)人信息,比如當(dāng)前一些查詢公積金和社保的APP等。他們都可以根據(jù)用戶提供的賬號密碼模擬登錄公積金網(wǎng)站進(jìn)行查詢?nèi)缓筮M(jìn)行授權(quán)管理!

三、Cookielib/cookiejar操作cookies

Python 3.*用urllib.request來代替原來的urllib2,因此調(diào)用的時(shí)候改為import urllib.request,同時(shí)cookielib也被http.cookiejar取代。cookielib/cookiejar模塊的主要作用是提供可存儲(chǔ)cookie的對象,以便于與urllib模塊配合使用來訪問Internet資源。

1、獲取Cookie保存到變量

為了考慮到個(gè)版本的兼容,我們這里優(yōu)化了一些代碼,大家使用可以直接使用即可,我們先利用CookieJar對象實(shí)現(xiàn)獲取cookie的功能,存儲(chǔ)到變量中

import urllib2,cookielib

# python3環(huán)境

# import urllib.request as urllib2

# import http.cookiejar as cookielib

# 聲明一個(gè)CookieJar對象來保存cookie

cookie = cookielib.CookieJar()

# 創(chuàng)建cookie處理器

handler = urllib2.HTTPCookieProcessor(cookie)

# 構(gòu)建opener

opener = urllib2.build_opener(handler)

# 創(chuàng)建請求,類似urllib2中的urlopen/request

response = opener.open('http://www.baidu.com')

for item in cookie:

print('name:' + item.name + '-value:' + item.value)

2、將Cookie保存到文件中

上面我們已經(jīng)獲取到了cookies信息,我們可以通過FileCookieJar的子類MozillaCookieJar將cookie信息保存在文件中方便我們后續(xù)使用。

import urllib2,cookielib

# python3環(huán)境

# import urllib.request as urllib2

# import http.cookiejar as cookielib

# 設(shè)置保存cookie的文件,當(dāng)前為同級目錄的cookie.txt

filename = 'cookie.txt'

# 聲明一個(gè)MozillaCookieJar對象來保存cookie,之后寫入文件

cookie = cookielib.MozillaCookieJar(filename)

# 創(chuàng)建cookie處理器

handler = urllib2.HTTPCookieProcessor(cookie)

# 構(gòu)建opener

opener = urllib2.build_opener(handler)

# 創(chuàng)建請求

response = opener.open("http://www.baidu.com")

# 保存cookie到cookie.txt文件

cookie.save(ignore_discard=True, ignore_expires=True)

3、從文件中獲取Cookie并訪問

上面我們已經(jīng)將Cookie保存到cookie.txt文件中,我們可以利用load方法來讀取cookie并添加到我們Http請求中。

import urllib2,cookielib

# python3環(huán)境

# import urllib.request as urllib2

# import http.cookiejar as cookielib

cookie = cookielib.MozillaCookieJar()

# 從文件中讀取cookie內(nèi)容到變量

cookie.load('cookie.txt', ignore_discard=True, ignore_expires=True)

# 創(chuàng)建請求的request

req = urllib2.Request("http://www.baidu.com")

# 使用build_opener方法創(chuàng)建一個(gè)opener

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))

response = opener.open(req)

print response.read()

四、利用cookie模擬網(wǎng)站登錄

注意

通過這里我們可以了解到,有一些網(wǎng)站登錄加密算法非常麻煩;我們需要花費(fèi)大量時(shí)間來編寫登錄爬蟲。如果面對不常用或者一次性的爬蟲,我們可以直接通過瀏覽器登錄網(wǎng)站后,直接使用cookies來編寫我們的爬蟲即可,非常方便。

在這里我們cookie模擬登錄segmentfault.com

import urllib2,cookielib

# python3環(huán)境

# import urllib.request as urllib2

# import http.cookiejar as cookielib

filename = 'cookie.txt'

#聲明一個(gè)MozillaCookieJar對象實(shí)例來保存cookie,之后寫入文件

cookie = cookielib.MozillaCookieJar(filename)

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))

postdata = urllib.urlencode({

'stuid':'201200131012',

'pwd':'23342321'

})

#登錄教務(wù)系統(tǒng)的URL

loginUrl = 'http://jwxt.sdu.edu.cn:7890/pls/wwwbks/bks_login2.login'

#模擬登錄,并把cookie保存到變量

result = opener.open(loginUrl,postdata)

#保存cookie到cookie.txt中

cookie.save(ignore_discard=True, ignore_expires=True)

#利用cookie請求訪問另一個(gè)網(wǎng)址,此網(wǎng)址是成績查詢網(wǎng)址

gradeUrl = 'http://jwxt.sdu.edu.cn:7890/pls/wwwbks/bkscjcx.curscopre'

#請求訪問成績查詢網(wǎng)址

result = opener.open(gradeUrl)

print result.read()

總結(jié)

以上是生活随笔為你收集整理的python爬虫模块取cookie_[ Python爬虫实战 ] Python使用cookies - pytorch中文网的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。