虎扑社区相册下载工具

虎扑网相册下载工具:http://hupu.xavierskip.com/

这个工具是我维护时间最久的一个项目了,从最开始的一个本地运行的小脚本,到现在提供 web 服务。从最开始学习python练手写爬虫开始,到接触 web开发,进一步的熟悉数据库,从最开始的单线程抓取到多线程抓取。从最开始搭建在新浪的 SAE 平台上,到后来百度的 BAE 平台上,最近又转移到自己的 VPS 上,(因为BAE要实名认证,但是搬到国外的 digital ocean 上抓取的速度确实慢了很多),对 python 网站开发的流程也越来越熟悉,因为不像云平台都给你搭建好了,你只要操心你的应用代码就行。开始购买 VPS 是因为国内网络环境越来越恶劣,自备梯子的刚需,有了这么个玩意也提供我折腾的机会,逐渐了解了python 网络服务开发后端的几大组件,nginx反向代理 http server > WSGI服务器接口协议 、WSGI HTTP Server Gunicorn > 最后的python网络框架Flask

代码地址:https://github.com/xavierskip/hupu_Album_Downloader

从去年开始访问虎扑相册就需要登录了,当时我的解决方案就是用自己一个被小黑屋的帐号来登录抓取(当然你也可以提交你的帐号,前提是你愿意)

最近虎扑对这种频繁的登录操作会提供验证码来验证登录,如果某个时段提交的抓取太频繁,处理不好验证码就会登录失败。

改善这点就是存储cookies了,最近的更新就是这个内容,会存储登录帐号的cookies。

  1. 首先查找登录帐号的cookies,有则先使用这个cookies尝试登录,跳到3。没有cookie记录跳到2

  2. cookies 失效或者没有cookies记录,登录获取cookies,登录成功获取cookies,保存cookies,跳到4,登录失败,返回

  3. 用cookies登录,如果成功,cookies可以访问到相册就证明cookie没到期,成功返回内容。如果失败,cookie可能过期,跳到2

  4. 用cookies登录,访问相册成功返回。否则你的帐号访问不了这个相册

以后还会持续更新了,可以去学习下 Tornado 这种异步非阻塞的网络框架等……而且很多代码过了很久我自己都看不下去了,有些混乱不统一,而且功能很单一,只是抓取单一的相册图片,看看能不能学习其他爬虫框架的概念,改善一下写死的功能?

Tag:programwebpython Published under (CC) BY-NC-SA