爬取知识星球

GitHub 地址:https://github.com/96chh/crawl-zsxq

功能

爬取知识星球的精华区,并制作成 PDF 电子书。

效果图

image

模拟登陆

爬取的是网页版知识星球,https://wx.zsxq.com/dweb/#
这个网站并不是依靠 cookie 来判断你是否登录,而是请求头中的 Authorization 字段。
所以,需要把 Authorization,User-Agent 换成你自己的。(注意 User-Agent 也要换成你自己的)

headers = {
    'Authorization': '3704A4EE-377E-1C88-B031-0A42D9E9Bxxx',
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36'
}

分析页面

登录成功后,一般我习惯右键、检查或者查看源代码。
但是这个页面比较特殊,它不把内容放到当前地址栏 URL 下,而是通过异步加载(XHR),只要找对接口就可以了。
精华区的接口:https://api.zsxq.com/v1.10/groups/2421112121/topics?scope=digests&count=20
这个接口是最新 20 条数据的,还有后面数据对应不同接口,暂时还没搞。

分析

制作 PDF 电子书

  • 安装 wkhtmltox,https://wkhtmltopdf.org/downloads.html 。安装后将 bin 目录加入到环境变量。
  • 安装相应依赖:pip install pdfkit
  • 这个工具是把 HTML 文档转换为 PDF 格式。根据 HTML 文档中的 h 标签,也就是标题标签来自动提取出目录。
  • 本来精华区是没有标题的,我把每个问题的前 6 个字符当做标题,以此区分不同问题。

目前还有很多问题,详见 Issues

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • 文/低眉 其实,你我都明白 情深缘浅是我们的宿命 你说只是遇见就很好了 可是我总是奢求着再见 其实,你我都懂得 有...
    大花猫呀_阅读 271评论 0 0
  • sometimes when we touch, the honesty's too much. I have t...
    如果藻蓝阅读 280评论 0 0
  • 任何的知识,实际上都有明知识和隐性知识。明知识是可以传诵的,可以书写的。但隐知识却隐藏在事物中,可意会而不可言传。...
    可可儿妈阅读 220评论 0 0