返回信息流没写过Python,但总看各路大神用的飞起,暖神大力推荐,也想自学一下简单用法。
正好手头有个需求,想抓一些橄榄球图片下来。图片的地址格式为:
http://某固定路径/年/月/日/固定位数+变化六位数字连续编号/不同的英文名称_pg_600.jpg
例如http://static.nfl.com/static/content/public/pg-photo/2016/02/07/0ap3000000634469/john-elway_pg_600.jpg
听说过bs4库,但不知道具体应该从何处入手。望大大给个简要的思路,如何实现。
想边做边学,比较有乐趣。
@icybee
这是一条镜像帖。来源:北邮人论坛 / python / #12276同步于 2016/2/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
超级白求解一个跑图片的方法
yo1995
2016/2/9镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
例如 http://www.nfl.com/photos/0ap3000000633956 页面,貌似是一个js点进去以后会得到对应图片,但连续切换几次就会强制等待。
我想要是能直接生成出地址,就不必去从每个页面获取图片地址再下载了,但是不懂能否通过通配的方式获得所有地址?
主要需求就是输入相册地址,能把相册中所有图片都下载下来就行。自己想上手发现无从下手……
因为没接触过这些,描述不太清楚。总之就是想请教,学长有经验,是怎么考虑这个问题解决方法的?
【 在 icybee 的大作中提到: 】
: 摸摸头,这个需求似乎没有必要用bs4啊,直接shell脚本wget就行啊
不太懂你的意思的,看了一下 http://www.nfl.com/photos/0ap3000000633956 这个页面,
你要的图片地址在源代码里面就有,都不用执行js
那么你通过python读取这个页面再用bs或者直接上正则不就能获取到图片地址了么
你可以先以600.jpg为关键词在源代码里搜一下试试,验证是不是源代码里就有图片地址
【 在 yo1995 的大作中提到: 】
: 例如 http://www.nfl.com/photos/0ap3000000633956 页面,貌似是一个js点进去以后会得到对应图片,但连续切换几次就会强制等待。
: 我想要是能直接生成出地址,就不必去从每个页面获取图片地址再下载了,但是不懂能否通过通配的方式获得所有地址?
: 主要需求就是输入相册地址,能把相册中所有图片都下载下来就行。自己想上手发现无从下手……
: ...................
持续摸头
然后继续回答:
首先抓包一看
看到小图是能抓到url的,比如这一张
http://static.nfl.com/static/content/public/pg-photo/2016/02/07/0ap3000000634249/chris-martin_thumbnail_200_200.jpg
(http://static.nfl.com/static/content/public/pg-photo/2016/02/07/0ap3000000634249/chris-martin_thumbnail_200_200.jpg)
但是想必楼主是不会满足于小图的,所以就开始找规律啦,点进大图,抓包发现大图url:
http://static.nfl.com/static/content/public/pg-photo/2016/02/07/0ap3000000634249/chris-martin_pg_600.jpg
对,就是把小图的最后那个thumbnail_200_200替换成pg_600就是,我之后又验证了几个,确实是这个规律没错
那么楼主要做的就很简单啦:
首先从网页里抓取图片url,然后一replace('thumbnail_200_200','pg_600'),然后把图片down下来,完事,bs4可以用来定位图片url,具体的实现就不说啦,因为思路已经非常明确了
【 在 yo1995 的大作中提到: 】
: 例如 http://www.nfl.com/photos/0ap3000000633956 页面,貌似是一个js点进去以后会得到对应图片,但连续切换几次就会强制等待。
: 我想要是能直接生成出地址,就不必去从每个页面获取图片地址再下载了,但是不懂能否通过通配的方式获得所有地址?
: 主要需求就是输入相册地址,能把相册中所有图片都下载下来就行。自己想上手发现无从下手……
: ...................
太感谢啦!!!我去试试
【 在 icybee 的大作中提到: 】
: 持续摸头
: 然后继续回答:
: 首先抓包一看
: ...................