一、安装

首先scrapy的安装之前需要安装这个模块:wheel、lxml、Twisted、pywin32,最后在安装scrapy

pip install wheel
pip install lxml
这个地址是一个下载python包的好地方
https://www.lfd.uci.edu/~gohlke/pythonlibs/下载twisted
pip install Twisted
pip install pywin32
pip install scrapy 安装完成后
输入scrapy 能够执行,并能提示版本,说明安装没问题

二、Scrapy项目的创建 (获取武林中文网)https://m.50zw.la/

1、在前面输入 scrapy 的时候有个选项是 startproject,这个选项是创建scrapy项目,我们在命令提示符中输入:

scrapy startproject wlzw (wlzw)

2、生成基础爬虫文件

cd wlzw

scrapy genspider spiderwlzw m.50zw.la 前一个是py文件名名后一个是要爬取的url

生成一个名为spiderwlzw.py文件

3、打开pycharm-->file-->open 找到建好的项目,显示项目结构

init.py 保持默认,不修改

items.py 保存爬取到的数据的容器

middlewares.py 中间件配置文件

settings.py 项目的设置文件,延迟等。

pipelines.py 项目管道文件,对传入的项目类中的数据进行一个清理和入库

spiders目录 该目录下 有一个init.py 文件,和第2步生成spiderwlzw.py文件

三、设计数据库

1、确认保存什么数据

数据库为:novel

表名

Novel

字段名

title 圣墟

author 作者:辰东

type 类别:玄幻小说

status 状态:连载中

update_last 更新:2019-07-05 14:35:32

update_last_status 最新:第1407章 女帝君临世间!

brief_introduction 小说简介

2、创建数据库和表

1)、pycharm下方的Terminal输入

python

    import sqlite3
novel=sqlite3.connect("novel.sqlite")
createtablesql="create table novel(title varchar(100),author varchar(50),type varchar(50),status varchar(50),update_last varchar(50),update_last_status varchar(100),brief_introduction varchar(500))"
novel.execute(createtablesql);
2)、完成创建数据库和表
3)、按住这个文件拖动到右侧的Database中

四、修改代码

1、根据第三步定义的数据库表结构修改items.py代码

import scrapy

class WlzwItem(scrapy.Item):
# define the fields for your item here like:
# name = scrapy.Field()
title = scrapy.Field()
author = scrapy.Field()
type = scrapy.Field()
status = scrapy.Field()
update_last = scrapy.Field()
update_last_status = scrapy.Field()
brief_introduction = scrapy.Field()
pass 2、修改spiderwlzw.py文件
主要为三部分
本页内的小说连接
本页内的下一页连接
打开每篇小说后的采集具体的数据 import scrapy
from wlzw.items import *
#武林中文网 class SpiderwlzwSpider(scrapy.Spider):
name = 'wlzw' #这里要和项目名称保持一致
allowed_domains = ['m.50zw.la']
start_urls = ['http://m.50zw.la/wapsort/1_1.html'] #这里只处理玄幻类小说 #主站链接 用来拼接
base_site = 'http://m.50zw.la' def parse(self, response):
book_urls = response.xpath('//table[@class="list-item"]//a/@href').extract()
print(book_urls)
for book_url in book_urls:
url = self.base_site + book_url
yield scrapy.Request(url, callback=self.getInfo) #获取下一页
next_page_url = self.base_site + response.xpath('//table[@class="page-book"]//a[contains(text(),"下一页")]/@href').extract()[0]
yield scrapy.Request(next_page_url, callback=self.parse) def getInfo(self, response):
item = WlzwItem() #提取信息
item['text_id'] = response.url.split('_')[1].replace('/', '')
item['title'] = response.xpath('//table[1]//p/strong/text()').extract()[0]
item['author'] = response.xpath('//table[1]//p/a/text()').extract()[0]
item['type'] = response.xpath('//table[1]//p/a/text()').extract()[1]
item['status'] = response.xpath('//table[1]//p/text()').extract()[2][3:]
item['update_last'] = response.xpath('//table[1]//p[5]/text()').extract()[0][3:]
item['update_last_status'] = response.xpath('//table[1]//p[6]/a/text()').extract()[0][3:]
item['brief_introduction'] = response.xpath('//div[@class="intro"]/text()').extract()[0] yield item
3、修改pipeline.py
import sqlite3 class WlzwPipeline(object):
def open_spider(self, spider):
self.con = sqlite3.connect("novel.sqlite")
self.cn = self.con.cursor() def process_item(self, item, spider):
print(item)
insert_sql = 'insert into novel(title ,author,type,status,update_last,update_last_status,brief_introduction) values("{}", "{}", "{}", "{}", "{}", "{}", "{}")'.format(item["title"], item["author"], item["type"], item["status"], item["update_last"], item["update_last_status"], item["brief_introduction"])
print(insert_sql)
self.cn.execute(insert_sql)
self.con.commit()
return item def spider_close(self, spider):
self.con.close() 4、修改setting.py
ITEM_PIPELINES = {
'wlzw.pipelines.WlzwPipeline': 300,
}

五、执行爬虫 (项目目录下执行)退到与工程同一目录下:

scrapy crawl wlzw

使用scrapy框架做武林中文网的爬虫的更多相关文章

  1. 使用scrapy框架做赶集网爬虫

    使用scrapy框架做赶集网爬虫 一.安装 首先scrapy的安装之前需要安装这个模块:wheel.lxml.Twisted.pywin32,最后在安装scrapy pip install wheel ...

  2. Python 爬虫之Scrapy框架

    Scrapy框架架构 Scrapy框架介绍: 写一个爬虫,需要做很多的事情.比如:发送网络请求.数据解析.数据存储.反反爬虫机制(更换ip代理.设置请求头等).异步请求等.这些工作如果每次都要自己从零 ...

  3. Python逆向爬虫之scrapy框架,非常详细

    爬虫系列目录 目录 Python逆向爬虫之scrapy框架,非常详细 一.爬虫入门 1.1 定义需求 1.2 需求分析 1.2.1 下载某个页面上所有的图片 1.2.2 分页 1.2.3 进行下载图片 ...

  4. Scrapy框架——CrawlSpider类爬虫案例

    Scrapy--CrawlSpider Scrapy框架中分两类爬虫,Spider类和CrawlSpider类. 此案例采用的是CrawlSpider类实现爬虫. 它是Spider的派生类,Spide ...

  5. 基于Scrapy框架的Python新闻爬虫

    概述 该项目是基于Scrapy框架的Python新闻爬虫,能够爬取网易,搜狐,凤凰和澎湃网站上的新闻,将标题,内容,评论,时间等内容整理并保存到本地 详细 代码下载:http://www.demoda ...

  6. Python爬虫进阶之Scrapy框架安装配置

    Python爬虫进阶之Scrapy框架安装配置 初级的爬虫我们利用urllib和urllib2库以及正则表达式就可以完成了,不过还有更加强大的工具,爬虫框架Scrapy,这安装过程也是煞费苦心哪,在此 ...

  7. scrapy框架的命令行解释

    scrapy框架的命令解释 创建爬虫项目 scrapy startproject 项目名例子如下: scrapy startproject test1 这个时候爬虫的目录结构就已经创建完成了,目录结构 ...

  8. Scrapy框架——CrawlSpider爬取某招聘信息网站

    CrawlSpider Scrapy框架中分两类爬虫,Spider类和CrawlSpider类. 它是Spider的派生类,Spider类的设计原则是只爬取start_url列表中的网页, 而Craw ...

  9. Python爬虫Scrapy框架入门(2)

    本文是跟着大神博客,尝试从网站上爬一堆东西,一堆你懂得的东西 附上原创链接: http://www.cnblogs.com/qiyeboy/p/5428240.html 基本思路是,查看网页元素,填写 ...

随机推荐

  1. ios证书制作与上架指南

    项目开发完了,要上架 ios AppStore 记录一下经过,以及需要提前准备和预防的东西,以便下次省心! 一.首先要申请开发者账号: 账号按流程注册申请,当时申请了够10遍,总结以下经验: 1.申请 ...

  2. Easypoi实现单模板生成多页wrod文档

        EasyPoi可以很方便的通过一个word模板,然后通过填充模板的方式生成我们想要的word文档.但是碰到了一个单模板生成多页数据的场景,比如一个订单详情信息模板,但是有很多订单,需要导入到一 ...

  3. 利用selenium和ffmpeg爬取m3u8 ts视频《进击的巨人》

    需求 想看下动漫<进击的巨人>,发现到处被和谐,找不到资源,但是在一个视频网站找到了在线播放,https://www.55cc.cc/dongman/17890/player-2-1.ht ...

  4. 尚硅谷MySQL高级学习笔记

    目录 数据库MySQL学习笔记高级篇 写在前面 1. mysql的架构介绍 mysql简介 mysqlLinux版的安装 mysql配置文件 mysql逻辑架构介绍 mysql存储引擎 2. 索引优化 ...

  5. elastic date时区问题解决办法

    之前介绍filter date插件时就谈到时区问题,但是没有说明白.最近在使用range查询时间范围内的数据时出现了数据量不一致的情况.特地了解了下ELK Stack中关于时区的问题. 问题: 使用k ...

  6. linux上查看swf文件.靠谱

    在linux上查看swf文件,本来想用gnash 来看,可是有的电脑上看的时候只有声音,没有图像 所以用网页来查看,推荐谷歌 我们在和flash文件的同目录下新建一个文件名为:index.html 注 ...

  7. 目标检测论文解读3——Fast R-CNN

    背景 deep ConvNet兴起,VGG16应用在图像分类任务上表现良好,本文用VGG16来解决检测任务.SPP NET存在CNN层不能fine tuning的缺点,且之前的方法训练都是分为多个阶段 ...

  8. NOIP 2003 栈

    洛谷 P1044 栈 洛谷传送门 JDOJ 1291: [NOIP2003]栈 T3 JDOJ传送门 题目描述 栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表. 栈有两 ...

  9. pycharm调整选中的变量的颜色

  10. Scrapy笔记03- Spider详解

    Scrapy笔记03- Spider详解 Spider是爬虫框架的核心,爬取流程如下: 先初始化请求URL列表,并指定下载后处理response的回调函数.初次请求URL通过start_urls指定, ...