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

栏目: Python · 发布时间: 5年前

内容简介:过完年回来,业余时间一直在独立开发一个小程序。主要数据是8000+个视频和10000+篇文章,并且数据会每天自动更新。我会整理下整个开发过程中遇到的问题和一些细节问题,因为内容会比较多,我会分成三到四篇文章来进行,本文是该系列的第一篇文章,内容偏python爬虫。本系列文章大致会介绍一下内容:

过完年回来,业余时间一直在独立开发一个小程序。主要数据是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。完成小程序所需要的所有接口的开发,以及使用定时任务执行爬虫脚本。​​​​


以上所述就是小编给大家介绍的《小程序开发(一):使用scrapy爬虫采集数据》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

App研发录:架构设计、Crash分析和竞品技术分析

App研发录:架构设计、Crash分析和竞品技术分析

包建强 / 机械工业出版社 / 2015-10-21 / CNY 59.00

本书是作者多年App开发的经验总结,从App架构的角度,重点总结了Android应用开发中常见的实用技巧和疑难问题解决方法,为打造高质量App提供有价值的实践指导,迅速提升应用开发能力和解决疑难问题的能力。本书涉及的问题有:Android基础建设、网络底层框架设计、缓存、网络流量优化、制定编程规范、模块化拆分、Crash异常的捕获与分析、持续集成、代码混淆、App竞品技术分析、项目管理和团队建设等......一起来看看 《App研发录:架构设计、Crash分析和竞品技术分析》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

随机密码生成器
随机密码生成器

多种字符组合密码