Python

Scrapy实战-新浪网分类资讯爬虫

2019-05-16  本文已影响105人  9ba4bd5525b9

项目要求:

爬取新浪网导航页所有下所有大类、小类、小类里的子链接,以及子链接页面的新闻内容。

什么是Scrapy框架:

Scrapy是用纯Python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架,用途非常广泛。

框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便。

Scrapy 使用了 Twisted['twɪstɪd](其主要对手是Tornado)异步网络框架来处理网络通讯,可以加快我们的下载速度,不用自己去实现异步框架,并且包含了各种中间件接口,可以灵活的完成各种需求.

  Scrapy架构图

制作Scrapy爬虫需要4个步骤:

  新建项目 (scrapy startproject xxx):新建一个新的爬虫项目

  明确目标 (编写items.py):明确你想要抓取的目标

  制作爬虫 (spiders/xxspider.py):制作爬虫开始爬取网页

  存储内容 (pipelines.py):设计管道存储爬取内容

开始实战:

新建Scrapy项目

  进入终端后,cd进入自定义的目录中,运行以下命令

scrapy startproject sina

  成功创建项目

明确目标(编写items.py)明确你想要抓取的目标

接下来需要明确抓取的目标,编写爬虫

打开mySpider目录下的items.py,该文件下已自动为我们创建好scrapy.Item 类, 并且定义类型为 scrapy.Field的类属性来定义一个Item(可以理解成类似于ORM的映射关系)。

  2.接下来,修改已创建好的SinaItem类,构建item模型(model)。

制作爬虫 (spiders/xxspider.py)

第三步就开始制作爬虫开始爬取网页

在当前目录下输入命令,将在sina/sina/spiders目录下创建一个名为sina_guide的爬虫,并指定爬取域的范围:

scrapy genspider sina_guide 'sina.com'

打开sina_guide.py文件,爬虫类也已创建好,默认爬虫名为‘sina_guide’,爬取范围为sina.com,起始网址为‘http://sina.com/’(需修改

需要修改起始网址为 http://news.sina.com.cn/guide/,该导航网址下有众多一级标题,又细分为众多二级标题

爬取所有大类标题及小类标题,右键点击‘审查元素’,可定位到该元素的地址,提取出XPATH地址(可使用xpath helper插件帮助定位生成)

根据爬取到的标题名分层创建文件夹,

  创建大类标题文件夹

创建二级标题文件夹

创建完成后即可得到文件夹按标题分类创建

创建文件夹后,便需要对内容进行采集并按文件夹存放 

存储内容 (pipelines.py)

配置pipelines.py

在终端执行爬虫文件:

scrapy crawl sina_guide

附上完整sina_guide.py以供参考:

上一篇下一篇

猜你喜欢

热点阅读