1 / 7
文档名称:

爬虫学习之基于Scrapy的网络爬虫.docx

格式:docx   大小:615KB   页数:7页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

爬虫学习之基于Scrapy的网络爬虫.docx

上传人:1136365664 2018/4/19 文件大小:615 KB

下载得到文件列表

爬虫学习之基于Scrapy的网络爬虫.docx

文档介绍

文档介绍:爬虫学习之基于Scrapy的网络爬虫
建立目标
同样在做任何事情之前都需要明确目标,那这次我们的目标是爬取一些技术性的文章并存储到数据库中。这就需要有目标网址和数据库结构,数据库我们选择使用MySql,目标网站我们找了一个叫脚本之家的内容站。我们这里首先准备好一张用于存储文章的表结构:
CREATE TABLE `articles` (
`id` mediumint(8) AUTO_INCREMENT NOT NULL,
`title` varchar(255) DEFAULT NULL,
`content` longtext,
`add_date` int(11) DEFAULT 0,
`hits` int(11) DEFAULT '0',
`origin` varchar(500) DEFAULT '',
`tags` varchar(45) DEFAULT '',
PRIMARY KEY (`id`),
KEY `add_date` (`add_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
分析目标结构
这里我们首先需要爬取得入口是“网络编程”这个节点,主入口网址为(t/) 打开这个网站我们通过Chrome或者其他浏览器的查看元素来分析当前页面的HTML语义结构,如下图所示:
从图中红色框线的部分可以看出,这里是我们需要在“网络编程”这个节点下需要提取的所有文章的主分类入口,通过这些入口可以进去到不同文章分类的列表中。所以根据初步结构分析,我们得出本次爬虫的爬取路线为:
从主入口进去-> 提取当前入口中的所有分类-> 通过分类入口进入到分类列表-> 通过列表进入到文章页
分类入口确定了接下来看看我们的分类列表,随意点开一个分类入口,打开列表如下图所示:
这里我框出了两个主要部分,第一个是文章的标题,第二个是分页,文章对应的URL就是我们接下来需要爬取文章内容的入口,这里需要注意的是分页的处理,通过分页的最后一页我们可以知道当前这类列表共有多少页文章。结合以上分析我们基本确定了本次爬虫的各个路线入口,接下来我们就开始通过程序来实现本次的目标。
实现爬虫
在实现爬虫之前我们通过一张图来对Scrapy有个基本的认识,为了保持本章内容的简洁性,我们这里暂时不会讨论Item Pipeline部分,Scrapy架构图如下所示(图片来自网络):
从图中可以很清晰的看到Scrapy所包含的几大块,下面我们通过代码来演示我们所用到的基础功能部分。
主要依赖第三方库:
web框架,这里只用到了database部分,将来会用来进行内容展示
scrapy 爬虫框架,这里只用到了最基本的内容提取
这里还会用到一些xpath相关知识,请自行Google了解xpath语法
# -*- coding:utf-8 -*-
'''by sudo rm -rf '''
import scrapy
from import Request
import web
import time
db =