# a. 定義乙個get函式 get(url,headers=none)
defget
(url,headers=none):
return urlrequests(url,headers=headers) #內部可以呼叫urlrequests #如果不寫headers=headers會被預設為none
# b. 定義乙個post函式 post(url,headers=none)
defpost
(url,form,headers=none):
return urlrequests(url,form,headers=headers) # 這個寫不寫都可以 但是建議所有none都寫上headers=headers
#1. 傳入url
#2. user_agent
#3. headers
#4. 定義request
#5. urlopen
#6. 返回byte陣列
defurlrequests
(url,form=none,headers=none):
#如果傳了form就認為是post 不傳就不是post
# 如果傳了form就能把form_bytrs獲得到
# 如果使用者需要自行傳入headers, 則覆蓋之前的headers
if headers == none:
headers =
html_bytes = b''
try:
if form: # 判斷form是否存在 也有可能是none
# 有form的情況就說明是 post
# 轉換成str
form_str = parse.urlencode(form) # 想讓使用者傳進來的是字典型別
# 轉換成bytes
form_bytes = form_str.encode('utf-8')
req = request.request(url, data=form_bytes, headers=headers) # form傳到request裡
else:
# 沒有form就是get
req = request.request(url,headers=headers) #form傳到request裡
# 用post方法
# url = ''
# form =
# html_bytes = post(url,form=form)
# print(html_bytes)
# 用get方法
url = ''
html_byte = get(url)
print(html_byte)
# 當封裝過之後的都是三個階段
# 第乙個階段 準備資料
# 第二個階段 呼叫函式
# 第三個階段 儲存\列印
LCA兩種方法
lca least common ancestors 即最近公共祖先,是指在有根樹中,找出某兩個結點u和v最近的公共祖先。模板題 anc i j 表示第i個點的2 j的祖先的標號 整個過程就是兩個點往上跳到同一深度,再一起往上跳找到lca include include using namespac...
popup的兩種方法
1,popup var pop function window.onload function aaa function closediv 2,div var divtop,divleft,divwidth,divheight,docheight,docwidth,objtimer,i 0 var ...
工資系統兩種方法
通用的系統 特點 一 乙個專案是另外乙個專案的子集 二 乙個專案可以任意於進行多項進行運算。三 乙個專案根據條件限制不同而結果不同。工資系統實現的使用者操作介面設想 文字描述 對於工資中的各個元素,可以任意做不同的操作組合。設計 在工資表裡的專案,找基礎資料 直接需要錄入的資料 列在工資表裡。有子集...