python3下的twisted

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3下的twisted相关的知识,希望对你有一定的参考价值。

在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的主要内容,如果未能解决你的问题,请参考以下文章

window7_64+python3.6安装Twisted

python3.5 安装twisted

Python3 Twisted Mysql错误

解决python3环境下twisted安装问题

windows下python3.6 通过pip安装Twisted模块报utf-8错误的解决办法

关于Python3.6中Twisted模块安装的问题