很多小伙伴发现,自己使用python提取html会发现html不全的问题,那么这个问题是如何出现的?又该如何解决 。那么今天小编就通过这篇文章来给大家分析一下为什么会出现python提取html不全和解决的方法 。

文章插图
出现python提取html会发现html不全的问题原因大多数是现在的网站上面有很多的反爬措施,最常见的就是json异步加载,网页上面的数据是json代码加载出来的,所以爬取的html信息不全 。
那么解决方法如下:
(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')(3)爬取得到的HTML在一行显示
调试步骤:通过print(type(html))查看html的类型, 可以查出是bytes类型,就需要解码
解决方案:
html = html.decode()(4)有时候使用爬虫会被网站封了IP,所以需要去模拟浏览器
解决方案:
header = {"User-Agent": "mozilla/4.0 (compatible; MSIE 5.5; Windows NT)"}req = request.Request(url=base_url,data=https://www.ycpai.cn/python/bytes(data,encoding='utf-8'),headers=header)(5)当服务器返回json格式的数据乱码
调试步骤:
通过print(type(json_data))查看数据的类型 。
【为什么用python提取html不全?解决方法看这篇文章】可以查出是str类型,就是说返回的字符串中有bytes类型的数据
解决方案:把json字符串转换为字典
json_data = json.loads(json_data)(6)怎么只输出json数据的value或者某个key对应的value,不要[{}]
以上就是小编给大家带来的为什么会出现python提取html不全和解决的方法了,希望大家通过阅读小编的文章之后能够有所收获!如果大家觉得小编的文章不错的话,可以多多分享给有需要的人 。
推荐阅读
- Python多行输入怎么实现?Python中input函数多行输入的方法
- python如何设置报错跳过?这篇文章非常值得参考
- python如何定义全局变量?这篇文章教会你方法
- 京东种草官怎么挣钱?有用吗?
- 京东e卡怎么兑换?如何当钱使用?
- 京东代入驻的费用是多少?如何操作?
- ps如何制作出渐变气泡效果?如何使用ps制作渐变元素的气泡?
- ps如何制作发蓝光的荧光字?如何使用ps制作蓝色发光文字?
- 醒图怎么补头发发量?怎么用醒图补发缝?
- 醒图人像修图技巧 怎么用醒图修脸?