最近受朋友委托,写了一个爬取中国Mooc往讨论区所有评论的程序 ,他需要这些数据写论文. 如下: 他需要爬取这些板块里所有的评论. 俗话说的好 六月七月爬虫热 因为这段时间许多的大学生都毕业了 特此写一篇文章来记录一下 可以看到 评论非常的多, 人工手动去爬取工作量是非常之大, 要我想都不敢想 . 都是几千几百条评论回复的 .现在开始正文.
首先 来分析一下, 很容易发现是 Ajax异步加载 现在开始找接口 发现是这个接口 然后我们来看参数 我们只看有没有跟url相关的参数 发现 c0-param0 参数的number 是 链接的pid值 batchId 很容易发现是13位时间戳 然后我们翻页看一下 还有什么相关的参数 我们翻到第三页
发现c0-param2 变成了3 于是我们推断一下param0 就是当前主题下的帖子的id, param2就是控制翻页的参数, 现在我们用python模拟一下 发现服务器给我们返回了数据
返回的是Unicode格式+js数据 我们进行格式化一下 发现数据是这样的 最后提取出来就是这样的啦 部分代码截图
程序运行截图
被优化后 只需要修改两个参数 就可以爬取一门课下所有的主题下的他帖子