## 搜狗、百度、QQ输入法词库爬虫
用python实现的爬取搜狗、百度、QQ输入法词库的爬虫。各文件夹对应的内容如下
- BaiduTheaurusSpifer: [百度输入法][1]的词库爬虫
- QQTheaurusSpider: [QQ输入法][2]的词库爬虫
- SougouThesaurusSpider: [搜狗输入法][3]的词库爬虫
每个输入法均采用了单线程和多线程实现了爬取功能。多线程的速度要远快于单线程,线程数目建议设为5~10,或者保留默认的设定数5。
通过urllib2、Queue、re、threading等python自带模块实现,无依赖的第三方模块。使用时将`singleThreadDownload.py`(单线程下载)或 `multiThreadDownload.py`(多线程下载)中的主函数中的baseDir改为自己的下载路径即可运行单线程下载或多线程下载,注意baseDir末尾没有/。
如果有下载不成功的文件或解析不成功的页面,在下载根目录会生成下载日志,记录这些文件和页面的URL信息,方便debug。
关于实现的具体细节可参考[这篇文章][4]。
下载的词库文件并非文本格式,而是各个输入法自己定制的二进制格式,关于词库文件的解码并转为文本格式可参考[这个repository][5]。
## 2017.01.13更新
百度输入法词库的网页布局已改版,词库的下载链接通过js代码获取,并且采取了一定的反爬虫措施(返回500,502错误)。500, 502表示内部服务器错误,但有的网站在针对爬虫访问的时候也会利用错误码500或502来反爬,百度词库正是这样。
解决方法:
1.虽然下载时通过js代码获取下载链接,但是**分析点击下载链接时的`http request`头中的`Request URL`**,可以发现实际的下载链接还是一个静态链接`https://shurufa.baidu.com/dict_innerid_download?innerid=`,其中`innerid=`后跟着的是词库文件的标示ID,可在网页中获取。
2.对于返回500,502错误码的反爬虫措施,通过**重新进行请求**解决,因为百度词库在返回500或502后会返回一个200,所以实际上并不是服务器出问题,更像是为了反爬而以一定概率出现这类状态码
注意:因为百度输入法采取了一定的反爬虫措施,为了降低返回502,500错误的几率,请求的 `user-agent` 不再固定,而是采用第三方库`user-agent` 生成,使用前需要先通过`easy_install user-agent`或`pip install user-agent`安装。
[1]: http://shurufa.baidu.com/dict.html
[2]: http://dict.qq.pinyin.cn/
[3]: http://pinyin.sogou.com/dict/
[4]: http://wulc.me/2016/03/27/%E6%90%9C%E7%8B%97%E3%80%81%E7%99%BE%E5%BA%A6%E3%80%81QQ%E8%BE%93%E5%85%A5%E6%B3%95%E7%9A%84%E8%AF%8D%E5%BA%93%E7%88%AC%E8%99%AB/
[5]: https://github.com/WuLC/ThesaurusParser
JJJ69
- 粉丝: 6368
- 资源: 5917
最新资源
- Python开发基于KNN算法的学生成绩预测模型项目源码+设计报告.zip
- 机器人大赛项目-医疗服务机器人-规定动作实现(获一等奖).zip
- 课设基于深度学习的人体心电数据多分类项目(含源码+说明文档+设计报告).zip
- 期末课设 基于知识图谱的医疗问答系统(含源码与说明,重复项优化).zip
- 基于 MATLAB 的 Hough 变换图像边缘提取算法(含源码与说明).zip
- 2018全国大学生信息安全竞赛作品赛一等奖项目源码+设计文档.zip
- 期末课设基于机器学习的文本波士顿房价预测算法及项目说明+设计报告.zip
- 基于Android的计步算法及APP设计与实现含源码+论文报告(本科毕业设计源码).zip
- 基于C语言的公共交通管理系统源码+报告(大一下课程设计).zip
- 课程作业基于C++和QT的高校学生选课管理系统源码及作业报告.zip
- 基于Qt的酒店住宿管理系统源代码开发与实现(期末大作业).zip
- 期末作业基于Ruo-Vue-Plus的智能算法应用系统(含密码、人脸识别等).zip
- 毕设基于SpringBoot+Mybatis+Plus-Uni-app的精简社区分享平台APP开发.zip
- 2024毕设基于深度学习的人脸表情识别项目源代码及应用场景.zip
- 课程大作业基于深度学习开发的图像分类器源代码+技术说明.zip
- 基于深度学习的文本分类系统(CNN和RNN实现,含项目说明).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈