在今日头条收藏了很多视频,文章什么的,通过头条的界面查看相当不方便,由于产生了要保存到本地的想法。
由是用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可真是够烂的!