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

优采云 发布时间: 2022-10-12 02:11

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

  摘要: 应用广泛,可用于数据挖掘监控和自动化测试。运行后发现,所有数据都存储在数据库中。提供一些界面来查看项目爬虫状态,执行或停止爬虫执行。完成小程序所需的所有接口的开发,使用定时任务执行爬虫脚本。

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

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

  本系列文章将大致介绍内容:

  数据准备(python的scrapy框架)

  接口准备(nodejs的hapijs框架)

  小程序开发(mpvue和小程序自带的组件等)

  部署上线(小程序安全域名等配置及爬虫/接口等上线部署维护)

  数据采集

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

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

  学习scrapy最好的方法是先阅读文档(Scrapy 1.6文档),然后根据文档中的示例进行编写,逐渐熟悉。有几个非常重要的概念必须理解:

  项目

  

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

<p>

</p>

  蜘蛛

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

  管道

  “一个item被蜘蛛抓取后,会被发送到Item Pipeline,它通过几个组件依次执行来处理它。”,pipelines是我们爬虫获取数据后会执行的处理操作,比如写入文件,或者链接到数据库,保存到数据库等,都可以在这里进行操作。

  选择器

  “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

  

  修改项目

  ​​​

  添加爬虫

  爬行动物

  编写管道修改配置文件

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

  scrapy爬虫项目部署

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

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

  这样,我们就可以轻松调整这些接口来管理我们的爬虫任务。

  当心:

  如何将scrapyd部署到服务器

  如何将scrapyd设置为系统后台服务和系统启动项

  下一个

  在下一篇文章中,我们将介绍和使用一个非常流行的nodejs后台api库——hapijs。完成小程序所需的所有接口的开发,使用定时任务执行爬虫脚本。​​​​

  解决方案:[整理]内容网数据采集接口定义及自动处理流程

  【整理】内容网络数据采集接口定义及自动处理流程数据采集及自动处理流程1概述采集自动数据处理流程通过对当前速度网络的分析,定性数据统计分析pdf销售业绩分析模板 建筑结构震害分析 销售进度分析表 京东商城竞争策略分析 我们认为数据的采集主要是手动爬取方法中提到了其他采集方法,但我们没有在当前极速网络后台找到对应的模块。希望网络相关人员通过阅读本文档对我们有所帮助。缺少的采集接口要及时补充。希望网通相关人员提供测试数据给我们测试 2采集接口定义 21 爬虫BT接口 211 问题待确认 因为我们在原来的快网后台没有找到这个接口的设置接口,请相关人员回答以下问题 1 爬虫是否会爬取BT信息 2 如果爬虫会爬取BT信息,那么与HTTP爬取信息是否一致 3 Bt爬取的数据有什么区别爬虫和Bt主动缓存解析的数据?在相关人员回复的前提下,我们根据以下条件进行设计: 1、爬虫会爬取BT信息。2.爬虫爬取的信息只收录资源信息。

  我们在爬取HTTP在线资源时,会根据以下条件设计爬虫。资源和数据信息不是同时进行的。

  

  整性校验判断去重2PROTOCOL采集协议4LANGUAGE语言5CNT_SIZE大小6QUALITY质量7DATA_RATE码流10INFOHASHInfohash值判断去重11Duration播放时长12URL资源来源完整性校验132222爬虫HTTP资料接口documentsdocumentnamenameauthorauthordirectorsdirectorsactorsactorstv_nametv_nametv_hosttv_hostspanspanplaydateplaydatecountrycountrylanguagelanguagemovietypemovietypecontent_typecontent_typecommentscommentstagtagdescriptiondesprictionhposterhpostervpostervposteris_hotis_hotchildren_countchildren_countavg_marksavg_markscapture_sitecapture_sitechannelchanneldocumentdocuments编号字段名称说明备注NAME名称 2 电影名称 LABEL 别名 3DESCRIPTION 描述 4 电影剧情描述 HPOSTER 风景海报 5VPOST

  是时候做个表了 详细英文字母案例表下载 简历模板下载定义了我们为筛选和品控发布总结的规则平台的规则引擎会自动按照以下规则处理数据。请根据实际情况执行这些规则。确认并补充过滤规则,通过判断非空视频名播放地址来阻止数据垃圾号,如果有空字段,则将数据放入垃圾表中,通过清空视频处理数据块资源垃圾号名称播放地址,如若有空字段,则将数据放入处理资源的垃圾表中采集信息数据会比较电影名称。如果有相同的数据,

  

  源比较播放地址 infohash 如果数据相同,删除其中一条记录。使用电影名称的别名与元数据中的原创数据进行比较。例如,如果元数据数据被去重,如果有相同的数据,数据将不会被添加到元数据数据库中。http 通过播放地址进行比较 bt 通过 infohash 值进入元数据资源进行去重比较。例如,如果找到相同的记录,则将资源状态更改为屏蔽并添加到元数据库中。如果在去重阶段没有找到相同的记录,则绑定相应的影子,并存储在数据库中的标题数据中,找到资源并进行绑定,反之亦然。对于有父子关系的资源数据,比如电视剧数据,如果库中没有子集数据,父子数据会自动生成子集数据进行资源绑定。审核规则决定每个字段是否有关键词,例如黄字有效,则转入人工资源进行审核。一般资源是否属于前10个入口网站如果直接审核通过资源有效性检查,发送ping到播放地址看是否有效先判断数据是否属于前10的传送门网站如果是直接数据内容校验和审核,别名中出现的逗号会自动转换为“”,如果是score字段两边的空格会自动转换小于5分。如果分数是整数,添加一个小数点。对于导演和演员来说,每行前后的空格会被自动移除。对于情节描述的第一行,自动添加或删除2个空格。对于演员和导演来说,如果名字不全,比如张艺谋张艺的查字典表会自动补全演员的名字。该地区也是如此。如果区域为空,可以通过actor和director来计算是哪个区域。如果频道对应的是剧情片,那么演员和导演不能为空。如果对应的是综艺节目,那么主电视台不能为空 对于演员和导演来说,如果名字不全,比如张艺谋张艺的查字典表会自动补全演员的名字。该地区也是如此。如果区域为空,可以通过actor和director来计算是哪个区域。如果频道对应的是剧情片,那么演员和导演不能为空。如果对应的是综艺节目,那么主电视台不能为空 对于演员和导演来说,如果名字不全,比如张艺谋张艺的查字典表会自动补全演员的名字。该地区也是如此。如果区域为空,可以通过actor和director来计算是哪个区域。如果频道对应的是剧情片,那么演员和导演不能为空。如果对应的是综艺节目,那么主电视台不能为空

  如果不符合规则,将进行人工审核。分发管理规则将根据资源的受欢迎程度进行排名。搜索次数分为几个级别的资源释放规则。高、普通、低3个等级。对于高级资源,它被传递到所有站点。对于普通资源,只投递到缓存空间较多的站点。对于低级资源,只下发到本地站点。1.当各个资源的缓存进度已经比较低时,缓存优化规则是根据规则替换或者删除缓存。2 当发现一个资源被多次缓存时,应该根据资源的缓存进度保留进度最高的资源。删除其他资源缓存。3 发现时如果站点的缓存空间低,则应根据每个资源的缓存温度来清理资源。应该清理缓存温度低的资源。32 详细说明 1. 资源处理流程图。可靠性审计等多个步骤确保进入元数据的资源是真实可用的资源。入库后,会定期调用审计规则,检查资源库中的数据是否满足审计条件。已过期的链接将被淘汰,符合发布条件的将被淘汰。资源调用分配管理机制保证资源的最大利用率 2 数据处理流程图 数据入库前会进行完整性校验。批量去重和元数据数据库去重等多个步骤确保元数据数据唯一并存储在数据库中。存储前会调用哪些审计规则?尝试提前更正错误的数据。存储后,会定期调用审计规则,检查数据库中数据的完整性和可靠性,部分数据会自动进行更正和更正。发布4个补充问题小伙伴引入的调用接口在哪里,应该怎么调用?可以提供吗?审计规则会定期调用,检查数据库中数据的完整性和可靠性,部分数据会自动进行更正和更正。发布4个补充问题小伙伴引入的调用接口在哪里,应该怎么调用?可以提供吗?审计规则会定期调用,检查数据库中数据的完整性和可靠性,部分数据会自动进行更正和更正。发布4个补充问题小伙伴引入的调用接口在哪里,应该怎么调用?可以提供吗?

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线