Python scrapy爬取起点中文网小说榜单

Python Scrapy 爬取起点中文网小说榜单完整攻略

1. 爬取起点中文网小说榜单的网址

首先,我们需要知道起点中文网小说榜单的网址。通过分析起点中文网小说榜单页面,我们可以得知榜单的网址为:https://www.qidian.com/rank/yuepiao。

2. 安装Scrapy

Scrapy是一个Python的爬虫框架,我们需要先安装它。

pip install scrapy

3. 创建Scrapy项目

通过命令scapy startproject [项目名]创建Scrapy项目。

scrapy startproject qidian

4. 创建Spider

在Scrapy项目中,我们需要创建一个Spider来定义如何爬取网站并解析爬取的数据。在本例子中,创建一个名为qidian_spider.py的文件。

import scrapy

class QidianSpider(scrapy.Spider):
    name = "qidian"
    start_urls = ["https://www.qidian.com/rank/yuepiao"]

    def parse(self, response):
        pass

在Spider中,我们定义了爬虫的名称name、起始网址start_urls和解析爬取数据的函数parse。在初始的parse函数中,我们先不做任何操作,将其留空即可。

5. 提取信息

在Spider中,我们需要编写代码来提取我们需要的信息。在本例中,我们需要提取小说的标题、作者、类型、状态和简介。

def parse(self, response):
     for book in response.css("#rank-view-list > div > ul > li"):
         yield {
             "title": book.css("div.book-mid-info h4 a::text").get(),
             "author": book.css("div.book-mid-info p.author a.name::text").get(),
             "type": book.css("div.book-mid-info p.author a:nth-child(2)::text").get(),
             "status": book.css("div.book-mid-info p.author span::text").get(),
             "intro": book.css("div.book-mid-info > p.intro::text").get()
         }

我们使用Scrapy提供的CSS Selector来提取信息。我们通过迭代每个小说的列表项,并通过CSS Selector选择器定位到需要提取的数据。

6. 运行Scrapy项目

在Spider编写完成后,我们还需要使用以下命令才能启动Scrapy项目。

cd qidian
scrapy crawl qidian -o books.json

Scrapy将会爬取起点中文网小说榜单,同时将结果保存在当前目录下的books.json文件中。

示例说明

示例1:

以下是提取小说排名、书名、作者、类型和简介内容:

yield {
    "rank": book.css("span.rank-tag::text").get(),
    "title": book.css("div.book-mid-info h4 a::text").get(),
    "author": book.css("div.book-mid-info p.author a.name::text").get(),
    "type": book.css("div.book-mid-info p.author a:nth-child(2)::text").get(),
    "intro": book.css("div.book-mid-info > p.intro::text").get()
}

示例2:

以下是提取小说的收藏数、总点击数和月票数:

def parse(self, response):
    for book in response.css("#rank-view-list > div > ul > li"):
        yield {
            "title": book.css("div.book-mid-info h4 a::text").get(),
            "collection": book.css("div.book-mid-info div.total-count::text")[0].get(),
            "click_count": book.css("div.book-mid-info div.total-count::text")[1].get(),
            "monthly_ticket": book.css("div.book-right-info div.monthly-ticket span.num::text").get(),
        }

在CSS Selector中,我们可以使用[]运算符来选择同一个标签下多个属性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python scrapy爬取起点中文网小说榜单 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • 爬虫大作业(2017年科技界发生了哪些变化——爬取17年腾讯新闻科技板块下的所有新闻)

        一、主题   本次作业是通过爬取腾讯新闻科技板块下2017年所有的新闻数据来分析17年科技界都发生了哪些热门事件,通过词云分析得出17年度科技界最热的词语。 二、实现过程   1、首先打开腾讯新闻网,进入科技频道。然后通过浏览器检查工具查看网页源代码,查找规律。    可以看出腾讯新闻科技频道下的新闻列表网址的规律如下:   网址前面一部分以年份和月…

    爬虫 2023年4月11日
    00
  • python使用pymysql操作MySQL错误代码1054和1064处理方式

    Python使用pymysql操作MySQL错误代码1054和1064处理方式 在Python中,使用pymysql操作MySQL时,可能会遇到1054和1064错误代码。以下是解决这个问题的方法: 错误代码1054 当我们使用pymysql执行SQL语句时,如果SQL语句中的列名不存在,就会出现1054错误代码。以下是解决这个问题的: 检查SQL语句中的列…

    python 2023年5月13日
    00
  • python ConfigParser库的使用及遇到的坑

    请看下面的详细讲解: Python ConfigParser 库的使用及遇到的坑 1. 简介 ConfigParser 是一个不错的库,可以读写INI格式的配置文件,主要用于处理各种简单的(稍微复杂一点就麻烦了)配置信息文本。Python自带 ConfigParser 库,使用起来十分方便。 2. ConfigParser 的基本用法 2.1 安装 Conf…

    python 2023年5月13日
    00
  • python 舀取和递归

    【问题标题】:python scooping and recursionpython 舀取和递归 【发布时间】:2023-04-07 02:15:01 【问题描述】: 我对一个小的递归代码感到震惊。我已经打印了输出并且打印正常,但是当我尝试放置一个计数器来实际计算我的答案时,它给了我舀错误。 total = 0 def foo(me, t): if t&lt…

    Python开发 2023年4月7日
    00
  • python实现自动化上线脚本的示例

    让我为你详细讲解“Python实现自动化上线脚本的示例”的完整攻略。 1. 确定上线流程和需求 在实现自动化上线脚本前,首先需要确定上线流程和需求。这通常包括以下几个阶段: 代码的编写和修改 代码的审核和测试 提交上线申请并等待审批 部署代码 验证代码是否成功上线 为了使脚本更加实用和可靠,可以在上线过程中加入验证步骤,比如检查日志、执行自动化测试等,以确保…

    python 2023年5月19日
    00
  • 基于Python+Pyqt5开发一个应用程序

    首先,开发一个基于Python+PyQt5的应用程序,需要完成以下步骤: 步骤1:安装Python和PyQt5 在开始之前,需要确保拥有Python3.x版本和PyQt5库。如果没有,需要下载并安装。 对于Python安装,可以到官网 https://www.python.org/downloads/ 下载安装对应版本的Python。 对于PyQt5库的安装…

    python 2023年5月31日
    00
  • Python 读取用户指令和格式化打印实现解析

    下面是关于Python读取用户指令和格式化打印实现解析的完整攻略。 1. 读取用户指令 1.1 命令行参数 Python有一个内置的sys模块,可以用来处理命令行参数。sys.argv列表是由命令行参数组成的列表。列表的第一个元素是程序本身的名称,之后的元素就是传递给程序的参数。 示例: import sys print(‘脚本名:’, sys.argv[0…

    python 2023年6月5日
    00
  • python读取nc数据并绘图的方法实例

    下面我将为你详细讲解“Python读取NC数据并绘图的方法实例”的完整攻略。 1. 确认安装必要的库 在进行读取NC数据并绘图之前,需要确认已经安装必要的库。一般来说,常用的库为netCDF4、numpy和matplotlib。可以使用以下代码确认是否安装了这些库: import netCDF4 as nc import numpy as np import…

    python 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部