用Scrapy爬取在线阅读网站

256 阅读1分钟

首先创建一个项目

scrapy startproject readonline

当前目录会增加一个readonline的文件夹

image.png

用tree命令查看readonline目录:

image.png

│  scrapy.cfg
│
└─readonline
    │  items.py
    │  middlewares.py
    │  pipelines.py
    │  settings.py
    │  __init__.py
    │
    └─spiders
            __init__.py

接下来,我们要增加一个spider来告诉scrapy,从哪里爬取数据以及数据获取后如何处理。

增加爬虫

首先要cd readonline

增加首页爬虫:

scrapy genspider indexpage www.xingyueboke.com

执行完命令后,

image.png

spiders的文件夹会增加一个indexpage.py的文件夹,我们稍微改一下里面的代码:


import scrapy


class IndexpageSpider(scrapy.Spider):
    name = 'indexpage'
    allowed_domains = ['www.xingyueboke.com']
    start_urls = ['https://www.xingyueboke.com/']

    def parse(self, response):
        with open('readonline.html', 'w', encoding='utf-8') as f:
            f.write(response.text)

这里我们指定start_url为https://www.xingyueboke.com/,爬取后,把内容放在readonline.html这个文件里面。

运行爬虫

scrapy crawl indexpage

运行完成后,当前目录增加了readonline.html文件,内容就是我们要爬取的网站的首页内容。

image.png