1. 程式人生 > >python3下的twisted

python3下的twisted

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