YunsChou

既然选择了远方,便只顾风雨兼程

一名iOS开发者


欢迎你的访问

【openshift-4】实现简单爬虫功能+将爬取的数据生成在线API

前提:请先学习爬虫框架BeautifulSoupFlask中jsonify的简单使用

1、如何使用爬虫框架BeautifulSoup,可以通过慕课网上的课程学习:Python开发简单爬虫

2、使用jsonify将数据转为JSON格式

一、实现简单的爬虫功能

1、选定爬取内容,并对网页代码进行分析

我们以爬取 python中文开发者社区 首页热点文章为例,示意图如下:

网页左侧红框内是要爬取的内容,网页右侧是使用Chrom浏览器查看HTML代码

img

可以看到,我们要爬取的内容是在<div class='news-hot'></div>中,这里我们只爬取目标文章的URL和标题

2、爬虫结构简介

学习过慕课网的视频后,应该对爬虫的结构一定了解,这里用文字归纳一下

一般爬虫的结构主要分为三大部分:爬虫调度器爬虫数据输出

其中爬虫又包括三个模块:URL管理器网页下载器网页解析器,示意图如下:

img

图片取自于CSDN博客,可到作者该博客中深入了解

3、添加BeautifulSoup依赖

如何添加第三方依赖库,已在上篇博客中有讲到,添加方法同Flask

img

4、编写爬虫

因为这里只讲解如何操作及思路,所以下面以最简单的方式来实现

思路:接收外部传入的URL->经过爬虫处理->返回处理后的数据

所有的爬虫操作写在一个文件中(步骤过于简写,也没做异常处理,仅用于理解参考),在保留实现思路的情况下提高易读性

创建爬虫文件hellospider.py,代码如下(截图):

img

二、将爬取的数据生成在线API

1、在helloflask.py中添加调用爬虫的路径/hot,代码如下(截图):

img

2、将修改后的应用部署到openshift上

此时,项目目录结构如下:

img

将本地修改后的项目push到线上

4、访问线上API

终于到了激动人心的时刻,快查看你自己实现的线上API

我的线上API访问结果如下:https://python-yunschou.rhcloud.com/hot

img

最近的文章

【组件化-0】使自己的框架支持cocoapods

目的1、使自己的框架支持cocoapods2、使用pod管理组件化模块的准备知识说明1、从使用范围来看,主要分为两个方面: 供自己和团队使用(一般放在私有仓库中),pod引用时需要添加仓库路径 供其他开发者调用(框架提交至pod trunk),pod引用方式类似AFNetworking 注意:如果供自己和团队使用的代码放在GitHub的 公有仓库 中,那么外部开发者也是可以调用的,在调用时需要加上仓库路径 (本文即采用这样的方法,如果是内部使用,换成私有仓库即...…

组件化继续阅读
更早的文章

【openshift-3】添加Flask等第三方库+部署自己的应用

前提:请先学习git和flask的简单使用1、我们的操作只需要基础的git知识,如何使用git:Pro Git(中文版)最低目标:将线上的项目clone到本地;将本地修改后的项目push到线上2、Flask是一个使用Python编写的轻量级Web应用框架,详细请参考: Flask 文档(中文版)最低目标:使用Flask实现WSGI接口一、添加Flask依赖1、将线上的项目clone到本地进入openshift中我们创建好的应用右侧红框处,提示开发者使用git clone将线上项目拷贝至本地...…

openshift继续阅读