抓取今日头条的个人收藏夹目录

在今日头条收藏了很多视频,文章什么的,通过头条的界面查看相当不方便,由于产生了要保存到本地的想法。
由是用python写了一个爬虫,可以抓取个人的今日头条的收藏夹内的内容到本地,并保存为excel文件和html文件,方便检阅。同时支持后续更新,自动添加新的收藏夹条目,不会每次都去完整抓取。

不抓不知道,一抓吓一跳,居然有4000多条数据,晕。

总述

登录

登录使用了cookie的方式,即是需要从浏览器里复制出已登录用户的cookie信息,供python使用

数据结构

class Record:
    '一条收藏夹记录'
    def __init__(self,title,url,tag,repin_time,behot_time):
        self.title = title
        self.url = url
        self.tag = tag
        self.repin_time = repin_time
        self.behot_time = behot_time
        
class FavPage:
    '代表一个页面'
    def __init__(self,has_more,next_page_code,Records):
        self.has_more = has_more
        self.next_page_code = next_page_code
        self.Records = Records

抓取

使用python 的urllib库

def getUrl(url):
   
        try:
            response = requests.get(url,headers=header,timeout=3)
            if response.status_code == 200:
                return response.text
            return None
        except Exception as e:
            print('Error occurred, retry ',str(e),' ',url)
            #return None

分析

使用python的json库

保存

使用python的xlsx库

运行

linux文件格式,在linux下运行,windows下没装python。

总结

其实到过头来看一看,真是挺简单的,整个程序不足100行。加上很多一些检查,辅助之后,也就不到200行。8 过有了这个东东,以后抓什么都可以了,HHHH

分析

今日头条的收藏夹通过一个url来访问,后面跟了一个参数,这个参数是一个时间戳,表明从此时间开始往后的收藏夹条目,抓取20个。这是唯一的重要参数。
返回值是一段json数据。

问题

重复,频繁,快速的访问会导致访问被封。导致返回空数据,不过过一段时间就会恢复正常。

代码

有空把代码传上来

代码分析与心得

  • 使用python写这个东西,有很多库可以使用,功能完善,用起来相当方便。
  • 但python的语法很麻烦,而且当中有一点函数式编程的思想,我只能说,这TM就是画蛇添足,折腾了半天,还是不用函数式编程比较好。
  • python可真是够烂的!

你可能感兴趣的:(工具)