Python日常小记 - NFL官网相册下载

Catalogue
  1. 1. 概述:
  2. 2. 准备:
    1. 2.1. 问题1:动态页面?
    2. 2.2. 问题2:ghost
    3. 2.3. 问题3:chromedriver
    4. 2.4. 问题4:文件名等杂项
  3. 3. 总结

原题:论python盲如何错误地学习python

论坛链接

概述:

不想干活花了一天时间做了一件无聊的事情。零基础自学“拍松”写了几行程序用来抓nfl官网图片。

准备:

首先上Python版问了一下大大应该如何实现。大大简明易懂地给出了实现方法,开干。

https://bbs.byr.cn/#!article/Python/12276

准备一些必要的东西。安装win Python 2.7,pip,bs4。这些步骤简单略去不表。

由于听说过几耳朵Python用法,知道是不用写分号和通过缩进判断块结构。很顺利通过bs4取得了静态页面的所有图片。

问题1:动态页面?

高兴之余发现,好多图片没down下来啊?一拍脑袋就知道,肯定是动态页面,用了js了。

恰巧动态页面载入的方法也听说过一些。摸索着找到了phantomjs、ghost.py、selenium三家。

首先派出了phantomjs,因为对js写法一无所知,java也一窍不通,战略性放弃。

转战ghost.py掉进了大坑emc42

问题2:ghost

按理说这个工具是个小而美的webkit虚拟客户端。但是一下撞上了一堆问题。

  • 首先是版本。其0.1和0.2版本用法完全不同,2014年资料全都没用。发现这个问题花去了一个半小时。
  • 其次是环境。需要Pyside和PyQt搭配使用。想简单安装需要VPN。此处花掉半小时。
  • 然后是用法。据说为了避免某个错误不能在term中使用。windows本来就不熟还不给用……算了弃之。此处花去一小时。
    于是愉快地转战selenium~emc10

问题3:chromedriver

高高兴兴地下了chromedriver,随即各种奇葩问题。一一狗之没找到原因。version了一下chrome发现64系统装的32chrome,醉了……

遂改换环境,一路顺利。最后测试时却遇到超时问题。

再狗之,无解。本以为因墙无解,后增加延时得解。

问题4:文件名等杂项

大部分问题都迎刃而解,自然信心爆棚。最后有一点小问题。

  • 首先是bs的find和find_all,find_all返回的是类似一坨列表的一个结构,想要继续从中筛选需要for一下find,一条一条匹配。
  • 第二是弹出条件。发现当图片找到某一张时某个attribute会改变。遂简单粗暴if一下退出。
  • 第三是文件名称。正则匹配+人工数位数凑合上了。
  • 第四发现下太快服务器会中断链接。固定3s间隔解决。不怕慢。
  • 第五py2exe,还是win32和amd64弄混了。编译后发现bs4库丢失,暂时无解。

总结

人生苦短我也不想用python。最好以后不码代码emc4世上聪明人那么多,为啥要去和他们肛代码?
相较之下matlab简直是儿童乐园。当然python和C比也是天堂地狱。

Python与exe之辩,大家都说Python就不应该编译成exe的。的确如此,但在win下玩Python本来就有点小奇葩。

前端后端的连接,反正我是不敢看,太晕。想找一个元素,要是人家藏得好,半天都不见得找得出来。

特别佩服@Dlovingalice 这种码神。求带飞!

总之,这就当做我的Python 101吧~

1
print u'Hello World !'

源码需要可群内索取

求指点!!

效果图:

NFL效果图
{.:hascaption}

Share Comments
多说已于2017年6月1日到期,此处不再提供评论功能。如需评论请使用About页面的disqus(GFW)或提交issue。
The previous duoshuo comment system stopped service. Please use disqus or submit issues to comment.