小程序开发(一):使用scrapy爬虫采集数据
优采云 发布时间: 2020-08-28 05:48小程序开发(一):使用scrapy爬虫采集数据
过完年回去,业余时间仍然在独立开发一个小程序。主要数据是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等),我们就可以来写一个爬虫项目了。
爬取的内容来自于 这个网站。
创建项目
scrapy startproject jqhtml
修改items
添加爬虫
爬虫爬虫
编写pipeline 更改配置文件
这样我们就顺利地完成了爬虫项目的编写。运行下,发现数据全部存到了数据库中。
scrapy爬虫项目的布署
scrapy爬虫项目的布署,我们使用官方的scrapyd即可,使用方式也比较简单,在 服务器 上安装scrapyd而且启动即可,然后在本地项目中配置deploy的路径,本地安装scrapy-client,使用命令deploy即可布署到服务器。
scrapyd提供了一些api插口来查看项目爬虫情况,以及执行或则停止执行爬虫。
这样我们就很方便的调这种插口来管理我们的爬虫任务了。
注意点:
如何布署scrapyd到服务器怎么设置scrapyd为系统后台服务及系统启动项
NEXT
下一篇,我们会介绍而且使用太火的一个nodejs后台api库 - hapijs。完成小程序所须要的所有插口的开发,以及使用定时任务执行爬虫脚本。