背景:
能够全量爬取今日头条我的收藏内容之后,新收藏的内容依然希望能够保存到新文件中。
思路:
- 每次都全量爬取太耗时,增量式爬取节省时间。
- 取消收藏的影响:爬虫旧文件用户收藏的链接有可能被取消收藏。所以在断点位置的判断上考虑取连续100条的我的收藏id作为判断基准,这样即便用户偶尔取消收藏几条,依然能够准确找到断点。
- 增量式功能可以覆盖全量下载我的收藏。
- 每次运行增量爬虫,如果有新内容,则新增一个文件,文件格式:myfavorites-年月日-时分秒.txt。如果没有新内容,不需要新增文件。
- 代码参考这里:https://github.com/pmh905001/myfavorite/blob/master/toutiao/increasmentdownload.py
- 从断点处按照有新到旧的id需要获取最多100条,这种情况下需要遍历所有myfavorites-年月日-时分秒.txt的文件且需要倒序排列,依次读取id直到100条。参考latest_ids_from_file()
- 在获取每页的数据之后,需要找到断点,把冗余的数据给删除。重置has_more=False。参考get_page()方法
- 在写文件的时候,如果页数据收藏列表如果为空,则不写入文件。参考write_page()
- 代码写的比较粗糙,还需要重构