用cookie來通過乙個簡單的登入驗證的爬蟲方法

2021-08-23 12:38:40 字數 2038 閱讀 2513

#定義乙個類用來實現cookie的儲存

class

cookieset

(object):

def__init__

(self):

#這裡類似於建立乙個容易用來存放你的cookie

cookie_object = cookiejar.cookiejar()

#這個作用是如果在執行opener時遇到了cookie就把cookie放到cookie_object裡面

#把opener變成類裡的屬性

self.opener = request.build_opener(handler)

#物件內的get方法

defget

(self,url,headers=none):

#呼叫外部的get函式

return get(url,headers=headers,opener=self.opener)

#物件內的post方法

defpost

(self,url,form=none,headers=none):

return post(url,form=form,headers=headers,opener=self.opener)

#從下面的urlrequest詳細封裝了post方法函式

defpost

(url,form=none,headers=none,opener=none):

return urlrequests(url,form=form,headers=headers,opener=opener)

#從下面的urlrequest詳細封裝了get方法函式

defget

(url,headers=none,opener=none):

return urlrequests(url,headers=headers,opener=opener)

#定義總方法

defurlrequests

(url,form=none,headers=none,opener=none):

html_bytes = b''

#自定義請求名字

ifnot headers:

headers =

try:

#判斷是否給他傳遞了form引數

if form:

#把form裝換成字串

form_str = parse.urlencode(form)

#把其轉換成bytes

form_bytes = form_str.encode('utf-8')

#呼叫函式

req = request.request(url,data=form_bytes,headers=headers)

else:

req = request.request(url,headers=headers)

# 判斷是否有opener傳入

if opener:

response = opener.open(req)

else:

response = request.urlopen(req)

html_bytes = response.read()

#異常捕獲

#在這裡你可以根據自己的需求傳入你自己的url,headers和form;

#你也可以選擇get和post方法,方法是封裝在類裡面的函式

用C語言來實現乙個簡單的數字排序

首先,需要強調一點,排序的方式有很多種,而我寫的這一種應該是最容易理解的,比較適合初學者來看,但是實現排序相對占用 空間比較多,不是一種很好的排序方式。這種方式使用的是一維陣列的方式,首先是將申請的空間初始化,然後將輸入的數分別放到對應序號的一維陣列中,利用一維陣列 來計數,然後利用一維陣列的將數列...

1 8 用乙個Category來擴充套件乙個類

1 問題 你想要給乙個類新增方法和行為,但你不想從頭建立乙個全新的子類。2 解決方案 在objective c中,你可以用categories來定義和實現properties和methods,之後它們可以被附到乙個類上。要完成這件事,你需要有2個檔案 乙個標頭檔案列出介面 乙個實現檔案列出實現。當c...

通過socket來進行乙個UDP通訊

前言 internet 協議集支援乙個無連線的傳輸協議,該協議稱為使用者資料報協議,一般用在廣播等地方,因為他不在意對方是否收到 udp 客戶端 先接收資料,先執行 1 建立乙個socket套接字 呼叫socket函式,建立乙個網路描述符 include include include includ...