當前位置:法律諮詢服務網 - 企業資訊 - python獲取cookie後怎麽模擬登陸網站

python獲取cookie後怎麽模擬登陸網站

運行平臺:Windows

Python版本:Python3.x

IDE:Sublime text3

壹、為什麽要使用Cookie

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

比如說有些網站需要登錄後才能訪問某個頁面,在登錄之前,妳想抓取某個頁面內容,登陸前與登陸後是不同的,或者不允許的。

使用Cookie和使用代理IP壹樣,也需要創建壹個自己的opener。在HTTP包中,提供了cookiejar模塊,用於提供對Cookie的支持。

') #打印cookie信息

for item in cookie:

print('Name = %s' % item.name)

print('Value = %s' % item.value)1234567891011121314151617

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

2)保存Cookie到文件

在上面的方法中,我們將cookie保存到了cookie這個變量中,如果我們想將cookie保存到文件中該怎麽做呢?方便以後直接讀取文件使用,這時,我們就要用到FileCookieJar這個對象了,在這裏我們使用它的子類MozillaCookieJar來實現Cookie的保存,編寫代碼如下:

# -*- coding: UTF-8 -*-from urllib import requestfrom ') #保存cookie到文件

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

cookie.save的參數說明:

ignore_discard的意思是即使cookies將被丟棄也將它保存下來;

ignore_expires的意思是如果在該文件中cookies已經存在,則覆蓋原文件寫入。

在這裏,我們將這兩個全部設置為True。

運行之後,cookies將被保存到cookie.txt文件中。我們可以查看自己查看下cookie.txt這個文件的內容。

3)從文件中獲取Cookie並訪問

我們已經做到把Cookie保存到文件中了,如果以後想使用,可以利用下面的方法來讀取cookie並訪問網站,感受壹下:

# -*- coding: UTF-8 -*-from urllib import requestfrom ') #打印信息

print(response.read().decode('utf-8'))12345678910111213141516171819

了解到以上內容,我們那就可以開始正式編寫模擬登陸伯樂在線的程序了。同時,我們也可以獲取相親MM的聯系方式。

4.編寫代碼

我們利用CookieJar對象實現獲取cookie的功能,存儲到變量中。然後使用這個cookie變量創建opener,使用這個設置好cookie的opener即可模擬登陸,同筆記四中講到的IP代理的使用方法類似。

創建cookie_test.py文件,編寫代碼如下:

# -*- coding: UTF-8 -*-from urllib import requestfrom urllib import errorfrom urllib import parsefrom /'

Login_Data['remember_me'] = '0' #是否壹個月內自動登陸

Login_Data['user_login'] = '********' ? #改成妳自己的用戶名

Login_Data['user_pass'] = '********' #改成妳自己的密碼

#使用urlencode方法轉換標準格式

logingpostdata = parse.urlencode(Login_Data).encode('utf-8') #聲明壹個CookieJar對象實例來保存cookie

cookie = cookiejar.CookieJar() #利用urllib.request庫的HTTPCookieProcessor對象來創建cookie處理器,也就CookieHandler

cookie_support = request.HTTPCookieProcessor(cookie) #通過CookieHandler創建opener

opener = request.build_opener(cookie_support) #創建Request對象

req1 = request.Request(url=login_url, data=logingpostdata, headers=head) #面向對象地址

date_url = 'htt/wp-admin/admin-ajax.php'

#面向對象

Date_Data = {}

Date_Data['action'] = 'get_date_contact'

Date_Data['postId'] = '4128'

#使用urlencode方法轉換標準格式

datepostdata = parse.urlencode(Date_Data).encode('utf-8')

req2 = request.Request(url=date_url, data=datepostdata, headers=head) try: #使用自己創建的opener的open方法

response1 = opener.open(req1)

response2 = opener.open(req2)

html = response2.read().decode('utf-8')

index = html.find('jb_contact_email') #打印查詢結果

print('聯系郵箱:%s' % html[index+19:-2]) except error.URLError as e: if hasattr(e, 'code'):

print("HTTPError:%d" % e.code) elif hasattr(e, 'reason'):

print("URLError:%s" % e.reason)123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354

5.運行結果如下:

三、總結

獲取成功!如果看過之前的筆記內容,我想這些代碼應該很好理解吧。

  • 上一篇:環境備案系統官網環境備案系統
  • 下一篇:什麽是數字貨幣?數字貨幣概念股
  • copyright 2024法律諮詢服務網