使用HTMLParser时无报错情况下异常中止
来源:互联网 发布:久久小说软件下载 编辑:程序博客网 时间:2024/06/05 02:53
使用HTMLParser时无报错情况下异常中止
今天在使用Python写一个爬虫时出现HTMLParser没有完全将整个页面解析完就中止的情况,且没有出现任何报错。问题已经解决了,特意把内容分享一下避免大家继续入坑。
错误结果:
上图显示出没有任何报错,HTMLParser最后解析到一个含href的超链接后中止。之前没有遇到过此类问题,百度上也找不到相关结果。为了找到问题的起因,直接把爬取的网页提取到本地,看在什么地方中止。
其中class为aaa的超链接是我自己把网页保存到本地后加的,目的是判断HTMLParser解析到哪里中止。
测试结果:
可以看出来class为aaa的超链接是可以解析到的。但是下一个超链接就没有被解析到了,解析直接结束,打印出最后我return的一个list。这个解析不出来的超链接如下:
<a class="info-title" href="http://www.baidu.com/baidu?cl=3&tn=SE_baiduhomet8_jmjb7mjw&fr=top1000&wd=%B4%AB%C6%E6%D3%B0%D0%C7%CF%C4%C3%CE%B4%C7%CA%C0"href_top="./detail?b=1&c=513&w=%B4%AB%C6%E6%D3%B0%D0%C7%CF%C4%C3%CE%B4%C7%CA%C0" title="香港影坛传奇影星夏梦辞世 位居"长城三公主"首位" target="_blank">香港影坛传奇影星夏梦辞世 位居"长城三公主"首位</a>
我把超链接里的title删除后,发现HTMLParser就可以正常解析了。于是乎发现是title中"的问题。该页面使用的是gb2312编码,HTMLParser不认识"这个符号,导致中止。所以改的话只要在read()页面的后面接个解码函数decode(“gbk”)就OK了。
page = response.read().decode("gbk")
正确结果:
现在HTMLParser就能正常解析了。
希望能帮到大家。QAQ但是毕竟像我这么渣的已经不多了大家开心就好。
0 0
- 使用HTMLParser时无报错情况下异常中止
- win8下联通3G网卡使用异常:连接中止+DNS解析错误
- fedora下make menuconfig使用异常情况解决
- HTMLParser 使用
- HTMLParser使用
- HTMLParser使用
- HtmlParser使用
- HTMLParser使用
- HTMLParser使用
- htmlparser使用
- HTMLParser使用
- HTMLParser使用
- HTMLParser使用
- HTMLParser使用
- HTMLParser使用
- HTMLParser使用
- HTMLParser使用
- 线程正被中止 异常
- Web.xml配置详解
- Linux下获取磁盘空间利用率方式
- 【接口测试】接口测试之HTTP协议二
- 小马哥---高仿苹果7 主板型号J01DS 6735 全网通 真指纹 新旧两个版本对比说明
- Eclipse中Java开发中版权声明及编码风格的注释
- 使用HTMLParser时无报错情况下异常中止
- 欢迎使用CSDN-markdown编辑器
- MySql学习 日记
- IDEA jetty - 热部署插件JRebel 安装使用教程
- H - Kefa and Park
- emlog在php7.0中的错误修正
- python3 实现 virtual judge 日志(三): 本地交题姬 2016.11.9更新
- 补间动画的bug
- AJAX浏览器缓存问题