BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / www-technology / #39738同步于 2017/3/16
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖

用python撸了一个图集小站

sunbird
2017/3/16镜像同步111 回复
最近挖坟了 https://bbs.byr.cn/#!article/Python/1859 https://bbs.byr.cn/#!article/Python/6763 于是心头一热,顺手花了2天时间撸了一个图集小站,目前前端的异步加载样式还有点问题,欢迎来看? http://51juchang.com/site/index/ 规规矩矩按照套路,先分享下设计框架,周末补一下开源地址,只是感觉放到github上有点难为情,有没有别的地方呢? 基础组件: HTTP服务,部署BAE一台机器 Nginx + uWSGI python-Flask框架 + supervisor守护 MySQL、redis 前端bootstrap+jquery 微信订阅号 产品设计: 1.列表页支持无限刷新,最好有访问历史,以及去重。 实际上Web不像app,难以拿到user_id或device_id等用户标识,除非主动以微信用户ID为标识,但不全。 鉴于样本量已经大了,索性先随机混排。(应该有办法,求教) 2.详情页除了披露图集全量数据,下发相关推荐位=列表页,用户不必每次返回列表页再下翻。 模块设计: 爬取模块 + API模块 + 订阅号 定时脚本每天爬取图片,但没有申请图片cdn,偷懒直接存了源站图片URI,落地到MySQL。 (细节:通过nginx反向代理302到源站图片地址。注意通过referer的处理尽可能避免403等盗链。。我是不是太穷太坏了) 有同学问是怎样Nginx转到uWSGI的,实际上是nginx上proxy_pass到uWSGI服务监听端口。 302需要注意referer的处理,比如去掉referer: location /site/image/ { set $hostx ""; set $addrs ""; if ( $uri ~ "^/site/image/http./+([^/]+)/(.+)$") { set $hostx $1; set $addrs $2; } resolver 8.8.8.8; proxy_pass http://$hostx/$addrs; proxy_set_header referer ""; } 另外nginx做lb的话,简单点可通过配置upstream80来搞,并分配实例的weight。 upstream site { server 10.x.x.x:xxxx weight=100; server 10.x.x.x:xxxx weight=100; } API模块提供3个接口: 1. 列表页主页面框架,用于渲染前端样式 2. 列表页图集数据接口,用于异步拉数据 3. 详情页页面,用于披露图集详细数据 (细节:cache+db,用redis缓存db数据,有过期时间;访问次数记录redis,粗略以send为准,没有靠前端埋点触发show事件) 订阅号完全是多年尘封的号,简单修改了下,发现微信对权限更加严格,订阅号已经不支持button跳转url了=。= 想到几点待改善: 能够有办法标识用户身份,可以做访问历史,去重,收藏等 考虑数据变化可能性小,可全量cache到redis,或者设置较长过期时间。 详情页偷懒直接渲染所有图片,可能导致加载图片时间较长,后面可做成异步部分加载。 增加搜索,基于elasticsearch倒排匹配,后面有空加吧。 前端异步加载样式有点问题,不会前端也没搞好。 整个设计和实现比较简单,很弱的单机器实例,抗不了多少qps,理想是基础组件拆分部署,db读写分离,db零穿透,nginx负载均衡,落地图片CDN。。。(所有这些都需要机器,需要money啊。。突然感觉能操作公司成百上千机器好富有=。=)
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
LLX2005机器人#1 · 2017/3/16
自从上了byr,身体一天不如一天了 发自「贵邮」
wxcf1992机器人#2 · 2017/3/16
楼主你爬图的源网站是哪个?
cl007机器人#3 · 2017/3/16
图有点辣
soramaru机器人#4 · 2017/3/16
老司机
LifeBeta机器人#5 · 2017/3/17
吓得我以为上了黄网[ema8]
appleseed机器人#6 · 2017/3/17
感觉身体被掏空
lizhe123456机器人#7 · 2017/3/17
论坛开车,指日可待 【 在 sunbird (sunbird) 的大作中提到: 】 : 最近挖坟了 : https://bbs.byr.cn/#!article/Python/1859 : https://bbs.byr.cn/#!article/Python/6763 : ...................
zbykid机器人#8 · 2017/3/17
楼主可以爬一下mgstage
qweasd12898机器人#9 · 2017/3/17
我就问一句这他妹的也能上十大?!?