python3下的twisted
阿新 • • 發佈:2017-05-12
web imp get urllib logs nco cat .com 我們
在python2中我們使用twisted比較方便,網上資料也比較多,但是通常在python3中使用的時候,並不能成功。我也是找了好多資料沒有成功之後,自己去嘗試做小白鼠,測試了很久之後,發現傳遞給twisted的所有數據都需要是bytes類型的。直接看代碼吧(親測可用):
from twisted.internet import reactor from twisted.web.client import getPage import urllib.parse num = 0 a = [] def one_done(arg): global num print(type(arg)) print(arg.decode()) a.append(arg) num += 1 if num == 3: reactor.stop() cookies = { b‘123‘: b‘654‘ } post_data = urllib.parse.urlencode({‘check_data‘: ‘adf‘}) post_data = bytes(post_data, encoding=‘utf8‘) headers = {b‘Content-Type‘: b‘application/x-www-form-urlencoded‘} for i in range(3): response = getPage(bytes(‘http://dig.chouti.com/login‘, encoding=‘utf8‘), method=bytes(‘POST‘, encoding=‘utf8‘), postdata=post_data, headers=headers, cookies=cookies) response.addBoth(one_done) reactor.run() print(a) 要註意的是,postdata這個字典是直接轉換為字符串然後轉換為bytes,headers和cookies只是將鍵和值轉換為bytes類型了。
註意:postdata這個字典是直接轉換為字符串然後轉換為bytes,headers和cookies只是將鍵和值轉換為bytes類型了。
python3下的twisted