百度,谷歌,github上关于python爬取网易云音乐评论的文章和代码非常多,但是大多数都是基于python2.7(运行会报错误)。即使时github上点赞数最高的文章,使用python3.6亲测,依旧会报错误。所以这篇文章算给众多前辈们写的文章的小小补充,也给像我一样的python爬虫小白们一丁点帮助。
想要爬取评论难点在于获得这个表单请求的两个参数params和encSecKey。这里大多数博客的方法都正确。我是参考知乎用户平胸小仙女的回答。感兴趣的朋友直接去知乎里面看就行。
坑1
-
我想说的是我在按照他们的代码执行时总是报一个错误,错误
定位到代码中,是在获得第一个参数的时候出错误。
image.png
这里的解决方案是: return str(encrypt_text, encoding="utf-8"),将其返回时,转化为字符串且指定编码格式。(非常重要,我就是在这里差不多耗了快两天的时间。大神勿笑)
坑二
- 当导入加密所属的AES的库时,因为import 语句中是from Crypto.Cipher import AES 当时无论使用pip 试试pycharm安装 crypto 都显示AES不存在,这里应该引入的是pycrypto.
坑三
- win系统缺少Microsoft visual c++ 安装Microsoft visual c++ build tools ,这个比较简单,正常安装就好。
坑四(坑三安装好了build tools 之后)
- 继续安装会出现C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.”错误,根据提示下载缺少的东西,然后安装
- 解决:新建用户环境变量名字:VCINSTALLDIR 值 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC(安装刚才下载工具如果是默认安装,就是这个路径)
命令行中进入这个路径,同时执行 vcvarsall.bat文件
执行语句:set CL=/FI"%VCINSTALLDIR%\INCLUDE\stdint.h"
再次pip3 install pycrypto就OK