python注重代码的阅读性,让代码看起来整洁美观,所以python是一门优雅的,简洁的,让人眼前一亮的高级语言.
‘’ import requests
‘’ url = “https://www.baidu.com”
‘’ response = requests.get(url)
代码意义简单明了,导入请求模块,利用请求库中的get请求向目标网站发送请求,获取目标网站的响应数据。这是爬虫的基础请求模块。
所以总而言之,刚进python界的萌新们应该是轻松愉快的在数据采集的路上自由的飞翔,除了那么几个BUG想害你,当然有BUG不是你的问题,而是正义的人生,往往会有几个反派的出现,证明自己的强大,那,离谱的BUG这么多,我们应该怎么去解决呢?
遇到问题不要慌,先随手拍个照片发个朋友圈,今天又是斗智斗勇的一天,再来根寂寞的香烟,打开熟悉的baidu.com,复制粘贴再复制粘贴,cv大法螺旋升天。
ok,我们来总结一下这些奇怪的问题,也欢迎各位勇士积极的在评论区留言你们遇到的离谱BUG。
一、你好,我是不间断空白符
不是所有的长得奇怪的东西都是统一的名字,比如以下的这位,
,(ps:我不是编码格式,我叫不间断空白符,关于我,感兴趣的同学,请自行百度一下我),在数据的抓取中遇到这位,通常会遇到这些情况:编码格式问题,数据成功定位之后会显示有空白符号,保存进文本会有一大片空白,这种问题,就把他当成字符串中的空白符处理就可以,直接strip()。
'‘print(x.strip(),end=’ ')
end="",以xx方式结尾,留出操作空间,方便后续的数据优化。
二、UTF-8不能处理字节
这种情况,常见的原因是你们不带coookie,所以,在你的代码headers中乖乖的带上cookies就好啦。
三.‘ gbk ’不能处理‘ \xa0 ’
这种情况其实在第一个问题里也会遇到,但是最最最主要的原因是!你在保存到文件的时候,没有解码!
''with open(‘jiuge.txt’, ‘a’, encoding=‘utf-8’) as f:
‘’ f.write(rep)
四、post请求中的表单数据响应无法正常显示的问题
在python中有个json的模块,模块中有个叫json.loads()的方法.
五、请求网页报错
这里不贴图,因为有请求就会有失败,可能只是筹码不够,在headers里加上cookies试试?换个代理ip试试?
六、网页标签定位匹配不到数据,返回空列表
这个问题不大,看你请求的网页,可能是眼花看错了标签,也有可能你到爬虫的重灾区,如果是,那恭喜你,你就会看到这里的山路十八弯。
例如:
这样的,你如果定位标签找不到,那么你去响应文件找找看,你会发现新大陆哦~
你会发现他是这样的,
所以找网页标签只是方法之一哦,有时候也要多去观察网站,尤其是知名网站!会有很大的帮助的,提取数据的方法正则也很好用~
时间原因,跟大家分享一部分吧,有问题的hxd可以留言分享呀~