Python爬虫编程常见问题解决方法:
1.通用的解决方案:【按住Ctrl键不送松】,同时用鼠标点击【方法名】,查看文档
2.TypeError: POST data should be bytes, an iterable of bytes, or a file object. It cannot be of type str.
问题描述:【类型错误】就是数据的类型应该是bytes类型,而不是str类型
解决方案:
data = data.encode('utf-8')
- 1
3.爬取得到的HTML在一行显示
调试步骤:通过print(type(html))查看html的类型, 可以查出是bytes类型,就需要解码
解决方案:
html = html.decode()
- 1
4.有时候使用爬虫会被网站封了IP,所以需要去模拟浏览器
解决方案:
header = {
"User-Agent": "mozilla/4.0 (compatible; MSIE 5.5; Windows NT)"}req = request.Request(url=base_url,data=bytes(data,encoding='utf-8'),headers=header)
- 1
- 2
5.当服务器返回json格式的数据乱码
调试步骤: 1.通过print(type(json_data))查看数据的类型,
2.可以查出是str类型,就是说返回的字符串中有bytes类型的数据
解决方案:把json字符串转换为字典
json_data = json.loads(json_data)
- 1
6.怎么只输出json数据的value或者某个key对应的value,不要[{}