前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小程序开发(一):使用scrapy爬虫

小程序开发(一):使用scrapy爬虫

作者头像
py3study
发布2020-01-06 17:36:44
9240
发布2020-01-06 17:36:44
举报
文章被收录于专栏:python3python3

过完年回来,业余时间一直在独立开发一个小程序。主要数据是8000+个视频和10000+篇文章,并且数据会每天自动更新。

我会整理下整个开发过程中遇到的问题和一些细节问题,因为内容会比较多,我会分成三到四篇文章来进行,本文是该系列的第一篇文章,内容偏python爬虫。

本系列文章大致会介绍一下内容:

数据准备(python的scrapy框架) 接口准备(nodejs的hapijs框架) 小程序开发(mpvue以及小程序自带的组件等) 部署上线(小程序安全域名等配置以及爬虫/接口等线上部署维护)

数据获取

数据获取的方法有很多种,这次我们选择了爬虫的方式,当然写一个爬虫也可以用不同的语言,不同的方式。之前写过很多爬虫,这次我们选择了python的scrapy库。关于scrapy,百度百科解释如下:

Scrapy,Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。

学习scrapy,最好的方式就是先阅读一遍文档(Scrapy 1.6 documentation),然后照着文档里的例子写一写,慢慢就熟悉了。里面有几个很重要的概念是必须要理解的:

Items

官方对items的定义是“The main goal in scraping is to extract structured data from unstructured sources, typically, web pages.”,个人理解为数据结构,也就是要爬取数据的字段,最好能和数据库字段对应,便于入库。

Spiders

“Spiders are classes which define how a certain site (or a group of sites) will be scraped, including how to perform the crawl (i.e. follow links) and how to extract structured data from their pages (i.e. scraping items). ”,也就是爬虫比较核心的内容,定义爬虫的方式,一些策略,以及获取那些字段等等。

pipelines

“After an item has been scraped by a spider, it is sent to the Item Pipeline which processes it through several components that are executed sequentially.”,pipelines也就是我们爬虫拿到数据后要进行的处理操作,比如写入到文件,或者链接数据库,并且保存到数据库等等操作,都可以在这里进行操作。

Selectors

“When you’re scraping web pages, the most common task you need to perform is to extract data from the HTML source. ”,这部分就是如何解析html,从爬取到的html文件中解析出所需的数据,可以使用BeautifulSoup、lxml、Xpath、CSS等方法。

几个重要的部分,在上面进行了一些说明。

准备好环境(python3/scrapy等),我们就可以来写一个爬虫项目了。

爬取的内容来自于https://www.jqhtml.com这个网站

创建项目

scrapy startproject jqhtml

修改items

添加爬虫

爬虫爬虫

编写pipeline

修改配置文件

​这样我们就顺利地完成了爬虫项目的编写。运行下,发现数据全部存到了数据库中。

scrapy爬虫项目的部署

scrapy爬虫项目的部署,我们使用官方的scrapyd即可,使用方法也比较简单,在服务器上安装scrapyd并且启动即可,然后在本地项目中配置deploy的路径,本地安装scrapy-client,使用命令deploy即可部署到服务器。

scrapyd提供了一些api接口来查看项目爬虫情况,以及执行或者停止执行爬虫。

这样我们就很方便的调这些接口来管理我们的爬虫任务了。

注意点:

  1. 如何部署scrapyd到服务器
  2. 如何设置scrapyd为系统后台服务及系统启动项

NEXT

下一篇,我们会介绍并且使用很火的一个nodejs后台api库 - hapijs。完成小程序所需要的所有接口的开发,以及使用定时任务执行爬虫脚本。​​​​

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-10-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建项目
  • 修改items
  • 添加爬虫
  • 编写pipeline
  • 修改配置文件
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档