Scrapy 框架实践爬虫–实践篇
前面已经对 scrapy 框架和思路进行了一个讲解。本篇文就来将理论进行实践。本爬虫的作用是通过主页爬取本站所有小说的简略信息 , 包括:小说名、作者、小说地址、状态、连载字数、文章类别、小说编号、收藏数、总点击数、总推荐数、最新更新日期。
代码地址附在文末 , 觉得有用请给我个 star 哟
本篇文中需要使用到的 python3 的库有:
- scrapy
- bs4
- re
1. 新建项目
在项目目录下使用命令 ’ scrapy startprojet 项目名称’ , 新建一个 scrapy 项目
创建成功后 , 项目目录结构如下:
spiders 目录存放爬虫 , items 文件定义需要获取的字段 , pipelines 对数据进行存储 , settings 用于存放各种设置。
2. 编写爬虫
在 spiders 目录下新建一个文件, 我将它命名为 DSpider , 这个文件作用主要就是对爬取下来的数据进行解析与提取。
为了使用这个爬虫 , 需要继承 scrapy.Spider 类 , 并且为定义爬虫定义属性(说白了就是给这几个变量或方法赋值)。
- name 属性。name 是为了区分不同的爬虫(一个应用中可能存在多个爬虫) , 因此 name 属性必须是唯一的。
- start_urls: start_urls 是当爬虫启动时去爬取的一个初始 url 列表 , 在这里我们只需要主页就可以了 , 其他页面的 url , 都可以从主页获取。
- parse , 拿到主页内容后 , 就需要对我们需要的内容进行提取 , scrapy 中默认内容完成之后将包含下载内容的 response 传给 parse 方法中。
那么 , 文件的大致的框架已经出来了 , 接下来只需要往里面填充内容即可。(ps: 真的是没多少代码 , python 真方便)
class DSpider(scrapy.Spider):
name = "DSpider"
start_urls = [
"http://www.23us.so/"
]
def parse(self, response):
print(response.text)
print(response.body)
到底为止 , 已经可以获取到主页的内容了。可以尝试运行看看。
运行爬虫的时候需要注意一点 , 如果是直接使用依靠命令运行项目 , 只需要在项目的