Scrapy框架学习笔记(2)——小说网站简单信息的爬取

本项目参考书上的例子自己找了一个小说网站(以笔趣阁为例)对各种热门书目信息爬取,用于练手,希望能够对和我一样的初学者有帮助。

友情链接

本文参考书目作者博客链接:https://cloud.tencent.com/developer/article/1151830

准备工作

1.pycharm;
2.scrapy框架;

创建项目

Alt
Alt

到这里我们的项目基本工作已经做好了。

观察网站

我们开始观察一下笔趣阁https://www.biqukan.cc各个页面和它的网页代码,以便爬取。
Alt
Alt
Alt
Alt

编写代码

观察完毕开始写代码,首先创建item
items.py

# -*- coding: utf-8 -*-

# Define here the models for your scraped items
#
# See documentation in:
# https://doc.scrapy.org/en/latest/topics/items.html

import scrapy


class BiqugeItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    myclass = scrapy.Field()    #小说的分类
    topNum = scrapy.Field()     #小说的排行
    book_name = scrapy.Field()  #小说名称
    href = scrapy.Field()       #小说链接
    author = scrapy.Field()     #小说作者
    hots = scrapy.Field()       #小说热度

然后我们开始解析Response,我这里采用css选择器提取自己想要的信息。
Alt
biqukan.py

# -*- coding: utf-8 -*-
import scrapy
from biquge.items import BiqugeItem

class BookSpider(scrapy.Spider):
    name = 'biqukan'
    allowed_domains = ['biqukan.cc']
    start_urls = ['https://www.biqukan.cc/']

    def parse(self, response):
        t =response.css('.panel-heading')
        myclass = t.css('::text').extract_first().strip(' ')[0:4]
        magics = response.css('.list-group-item')
        for magic in magics:
            item = BiqugeItem()
            item['myclass'] = myclass
            item['topNum'] = magic.css('.topNum::text').extract_first()
            item['book_name'] = magic.css('a::text').extract_first()
            item['href'] = magic.css('a::attr(href)').extract_first()
            item['author'] = magic.css('.text-muted::text').extract_first().strip('/ ')
            item['hots'] = magic.css('.pull-right.text-muted::text').extract_first()
            yield item

        nexts = response.css('.nav.navbar-nav a')
        for nexthref in nexts:
            next = nexthref.css('::attr(href)').extract_first()
            url = response.urljoin(next)
            yield scrapy.Request(url=url, callback=self.parse)

(代码比较简单,这里就不一一注释了)
到这里基本上就结束了,如果你还想存到数据库里,详细内容请看上面的友情链接。
下面我们开始运行。
这里有两种方式,一种是在cmd窗口直接输入scrapy crawler biqukan
还有一种就是在spider中建立一个main.py文件用来运行,我这里选择建立文件。
Alt
(spider文件夹下book.py是我之前建立的spider名称,这里以biqukan.py为准,所以,请忽视那个独树一帜的名字吧_)

from scrapy import cmdline
cmdline.execute("scrapy crawl biqukan".split())

好了,我们开始运行吧!
Alt

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值