辽宁十一选五一定牛 辽宁十一选五推荐号码预测专家今日 辽宁十一选五六月走势分析预测 哪个平台有辽宁十一选五开奖结果 辽宁十一选五六码遗漏 辽宁十一选五公告 辽宁十一选五前三技巧 辽宁十一选五任选四最大遗漏 辽宁十一选五小助手 辽宁十一选五360 辽宁十一选五组二技巧 辽宁十一选五推荐号码 辽宁十一选五计划软件手机版 辽宁十一选五连线走势图百度乐彩 辽宁十一选五玩法
用户
 ?#19968;?#23494;码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,登录网站

小程序社区 首页 资讯/观点 查看内容

小程序开发(一):使用scrapy爬虫采集数据

Rolan 2019-4-25 00:17

过完年回来,业余时间一直在独立开发一个小程序。主要数据是8000+个视频和10000+篇文章,并且数据会每天自动更新。?#19968;?#25972;理下整个开发过程中遇到的问题和一些细节问题,因为内容会比较多,?#19968;?#20998;成三到四篇文章来进 ...

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

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

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

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

数据获取

数据获取的方法有很多种,这次我们选择了爬虫的方式,?#27604;?#20889;一个爬虫?#37096;?#20197;用不同的语言,不同的方式。之前写过很多爬虫,这次我们选择了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.?#20445;?#20010;人理解为数据结构,也就是要爬取数据的字段,最好能和数据库字段对应,便于入库。


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). ?#20445;?#20063;就是爬虫比较核心的内容,定义爬虫的方式,一些策略,以及获取那些字段等等。


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.?#20445;琾ipelines也就是我们爬虫拿到数据后要进行的处理操作,比如写入到文件,或者链接数据库,并且保存到数据库等等操作,都可以在这里进行操作。

Selectors

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


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

准备?#27809;?#22659;(python3/scrapy等),我们就可以来写一个爬虫项目了。

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

创建项目

scrapy startproject jqhtml

修改items

?

添加爬虫

爬虫爬虫

编写pipeline

修改配置文件

?这样我们?#36864;?#21033;地完成了爬虫项目的编写。运行下,发现数据全?#30475;?#21040;了数据库?#23567;?


scrapy爬虫项目的部署

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

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

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

注意点:

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

NEXT

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

鲜花
鲜花
鸡蛋
鸡蛋
分享至 : QQ空间
收藏
原作者: segmentfault 来自: segmentfault
辽宁十一选五平台
辽宁十一选五一定牛 辽宁十一选五推荐号码预测专家今日 辽宁十一选五六月走势分析预测 哪个平台有辽宁十一选五开奖结果 辽宁十一选五六码遗漏 辽宁十一选五公告 辽宁十一选五前三技巧 辽宁十一选五任选四最大遗漏 辽宁十一选五小助手 辽宁十一选五360 辽宁十一选五组二技巧 辽宁十一选五推荐号码 辽宁十一选五计划软件手机版 辽宁十一选五连线走势图百度乐彩 辽宁十一选五玩法
豪华的开心假期电子 龙珠激斗礼包领取 东城娱乐真人百家乐 不给糖就捣蛋客服 qq飞车视频站 意甲联赛博洛尼亚vs那不勒斯 庆南fcvs柔佛dt 守财奴走势图 亚兹特兰金彩金