python编程设计师_从python开始一个全栈项目 程序员&设计师福利篇

更新 7月16日18点

现在不会自己写代码调用API的同志们可以直接访问咯

图片发自简书App

图片发自简书App

更新 7月16日12点

现在我们可以愉快的使用了,flask API和后台服务已经部署在了服务器上(新加坡)!!!

恩,更新一下,目前已经可以在HTML页面进行数据展示了:

web界面运行效果图

配图纯属为了好看

我在说什么

声明:

1.我不是一个标题党

2.我一般只提供干货

事实上,我实在干这样一件事,他大概分为如下几个步骤:

一、获取一些优秀的设计素材的数据

二、存储和筛选这些数据

三、编写一套API提供数据

四、编写一个网页调用API 展现数据

五、编写iso和android客户端展现数据

应用场景:

当你在闲暇的时候,打开手机或者网页,查看一下最近有没有什么好的设计素材或者比较感兴趣的HTML页面。

恩,你可能看到很多,突然发现一个让你眼前一亮的,然后你手藏了他。

有一天你正在写一个HTML页面或者设计产品原型,突然,你的脑子里闪过一些东西,于是你打开了你的手机查看了一下收藏夹......

接下来,我们就来看看,如何实现:

数据获取

首先,数据主要是从各大免费的设计素材资源网站拿到的,这需要用到python爬虫。

其次,这类网站大量的使用了JS来加载内容,我选择selenium+phantomJS渲染JS。

最后,从爬取到的内容内获取想要的,我选择用pyquery来获取html节点(不要问为什么,因为我习惯用jquery!)

存储数据

数据结构

数据结构很简单,我不过就是想获取一张预览图,一个预览地址(或者下载地址),还有标题!

一条数据大概会是这样:

{

"download": "http://www.doooor.com/thread-2762-1.html",

"preview": "http://img.doooor.com/img/forum/201404/16/173909sczpof6sf26eckcf.jpg.thumb.jpg",

"title": "STARS TOUCH 完全扁平化网页设计"

}

数据持久化

我们对数据的存储要求不是很高,因为最近在学习redis,所以就用redis,利用快照持久化!

爬虫的框架

一、我不懂什么框架,而且总体来说,要爬取得网站就那几个。自己编写一下规则就好了。

二、避免重复工作,用redis来存储待爬和爬过的url。

三、分布式? 哈哈,也许,可能大概是支持的吧。

四、效率?使用了selenium和phantomJS,貌似不用谈效率了,不过有些优化的小知识啦!

五、我是怎么实现的:

首先,我定义了一个爬虫服务 service.py,主要作用是连接redis,开始爬取工作,记录工作内容和工作结果。

然后,我写了一个爬虫工具 servicetools.py, 主要作用是模拟浏览器访问url,查找需要的元素和内容。

service.py 管理者-劳动者模式 (管理者Master发布任务,劳动者Work进行具体工作.)

管理者维护一个Redis 的 List 按照先进先出的模式, 每次发布一个url出去

劳动者接收到管理者的url,开始执行网页爬取工作,工作完成后 管理者pop掉这个url

劳动者如果获取的数据是url,则封装成list 提交给管理者, 管理者挨个push url.

servicetools.py(具体的网页爬取工作)

使用phantomJS和selenium结合,使用pyquery进行节点和内容的获取,不同的网站需要不同的规则。

目前实现的功能 和存在问题:

总体来说,运行良好,效率足够(根本不是实时系统嘛)!

额,比较费内存,可以在晚上睡觉之前执行,偶尔会出现假死,主要是phantomJS的优化没做!

如果程序异常推出,再次启动依旧能够继续工作,且不重复之前工作!

API的实现

上面的爬虫运行半个小时之后,大概就会有500多条有效数据,这些数据全部被存在redis里面(hset)。

可以参见我之前的文章快速入门 基于Flask实现Restful风格API,比较详细的介绍了如何使用flask来实现一个restful的API。

这里的flask程序需要从redis拿数据,我自己定义了一个数据源(连接redis分发数据)。

目前已经完成的工作

目前已经基本实现API获取数据,爬虫还正在努力的运行,稳定以后,将会设置系统任务,在每天半夜3点开始,五点结束。

看一张效果图吧:

API 可以返回简洁有用的数据

随便点击一个,预览图片也很不错呢

下一步的工作

继续发现和修补爬虫的bug

增加用户系统和认证机制,这样大家就可以收藏了

租一个云主机(求有需求的伙伴打赏)

编写客户端

公开源代码

最后,如果你对这个项目感兴趣,请发我简信,或者直接在下面评论!

还有,服务器好贵,真希望有人能打赏,让我早点把API公开。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值