为了账号安全,请及时绑定邮箱和手机立即绑定

在Python3.x中,运行程序,提示错误:TypeError: POST data should be bytes, an iterable of bytes, or a file object. It cannot be of type str.

#coding : utf-8
import urllib.request
import http.cookiejar

url = 'http://www.baidu.com'

print('第一种方法')
#直接请求
response1 = urllib.request.urlopen(url)
#返回状态码,如果是200,表示获取成功
print(response1.getcode())
#读取内容
cont = response1.read()


print('第二种方法')
request = urllib.request.Request(url)
#添加数据
request.data = 'a'
#添加http的header
request.add_header('User-Agent', 'Mozilla/5.0')
#发送请求获取结果
response2 = urllib.request.urlopen(request)
print(response2.getcode())

print('第三种方法')
#创建cookie容器
cj = http.cookiejar.CookieJar()
#创建一个opener
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
#给url安装opener
urllib.request.install_opener(opener)
#使用带有cookie的urllib访问网页
response3 = urllib.request.urlopen(url)
print(response3.getcode())

请问各位大神,这是哪里出问题了

正在回答

3 回答

去掉

request.data = 'a'

0 回复 有任何疑惑可以回复我~

楼主解决了吗?我也才学。代码跟你的差不多也是遇到这个问题了。

0 回复 有任何疑惑可以回复我~

request.data = 'a'

0 回复 有任何疑惑可以回复我~
#1

weibo_喔在路上_0 提问者

什么意思呢?这里有什么不对呢?
2017-09-18 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Python开发简单爬虫
  • 参与学习       227670    人
  • 解答问题       1219    个

本教程带您解开python爬虫这门神奇技术的面纱

进入课程

在Python3.x中,运行程序,提示错误:TypeError: POST data should be bytes, an iterable of bytes, or a file object. It cannot be of type str.

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信