闲来无事想看个小说,打算下载到电脑上看,找了半天,没找到可以下载的网站,于是就想自己爬取一下小说内容并保存到本地

圣墟 第一章 沙漠中的彼岸花 - 辰东 - 6毛小说网  http://www.6mao.com/html/40/40184/12601161.html

这是要爬取的网页

观察结构

下一章

然后开始创建scrapy项目:

其中sixmaospider.py:

# -*- coding: utf-8 -*-
import scrapy
from ..items import SixmaoItemclass SixmaospiderSpider(scrapy.Spider):name = 'sixmaospider'#allowed_domains = ['http://www.6mao.com']start_urls = ['http://www.6mao.com/html/40/40184/12601161.html']  #圣墟def parse(self, response):novel_biaoti = response.xpath('//div[@id="content"]/h1/text()').extract()#print(novel_biaoti)novel_neirong=response.xpath('//div[@id="neirong"]/text()').extract()print(novel_neirong)#print(len(novel_neirong))novelitem = SixmaoItem()novelitem['novel_biaoti'] = novel_biaoti[0]print(novelitem['novel_biaoti'])for i in range(0,len(novel_neirong),2):#print(novel_neirong[i])novelitem['novel_neirong'] = novel_neirong[i]yield novelitem#下一章nextPageURL = response.xpath('//div[@class="s_page"]/a/@href').extract()  # 取下一页的地址nexturl='http://www.6mao.com'+nextPageURL[2]print('下一章',nexturl)if nexturl:url = response.urljoin(nexturl)# 发送下一页请求并调用parse()函数继续解析yield scrapy.Request(url, self.parse, dont_filter=False)passelse:print("退出")pass

pipelinesio.py 将内容保存到本地文件

import os
print(os.getcwd())class SixmaoPipeline(object):def process_item(self, item, spider):#print(item['novel'])with open('./data/圣墟.txt', 'a', encoding='utf-8') as fp:fp.write(item['novel_neirong'])fp.flush()fp.close()return itemprint('写入文件成功')

items.py

import scrapyclass SixmaoItem(scrapy.Item):# define the fields for your item here like:# name = scrapy.Field()novel_biaoti=scrapy.Field()novel_neirong=scrapy.Field()pass

startsixmao.py,直接右键这个运行,项目就开始运行了

from scrapy.cmdline import executeexecute(['scrapy', 'crawl', 'sixmaospider'])

settings.py

LOG_LEVEL='INFO'   #这是加日志
LOG_FILE='novel.log'DOWNLOADER_MIDDLEWARES = {'sixmao.middlewares.SixmaoDownloaderMiddleware': 543,'scrapy.contrib.downloadermiddleware.useragent.UserAgentMiddleware' : None,'sixmao.rotate_useragent.RotateUserAgentMiddleware' :400  #这行是使用代理
}ITEM_PIPELINES = {#'sixmao.pipelines.SixmaoPipeline': 300,'sixmao.pipelinesio.SixmaoPipeline': 300,}  #在pipelines输出管道加入这个SPIDER_MIDDLEWARES = {'sixmao.middlewares.SixmaoSpiderMiddleware': 543,
}  #打开中间件 其余地方应该不需要改变

rotate_useragent.py  给项目加代理,防止被服务器禁止

# 导入random模块
import random
# 导入useragent用户代理模块中的UserAgentMiddleware类
from scrapy.downloadermiddlewares.useragent import UserAgentMiddleware# RotateUserAgentMiddleware类,继承 UserAgentMiddleware 父类
# 作用:创建动态代理列表,随机选取列表中的用户代理头部信息,伪装请求。
#       绑定爬虫程序的每一次请求,一并发送到访问网址。# 发爬虫技术:由于很多网站设置反爬虫技术,禁止爬虫程序直接访问网页,
#             因此需要创建动态代理,将爬虫程序模拟伪装成浏览器进行网页访问。
class RotateUserAgentMiddleware(UserAgentMiddleware):def __init__(self, user_agent=''):self.user_agent = user_agentdef process_request(self, request, spider):#这句话用于随机轮换user-agentua = random.choice(self.user_agent_list)if ua:# 输出自动轮换的user-agentprint(ua)request.headers.setdefault('User-Agent', ua)# the default user_agent_list composes chrome,I E,firefox,Mozilla,opera,netscape# for more user agent strings,you can find it in http://www.useragentstring.com/pages/useragentstring.php# 编写头部请求代理列表user_agent_list = [\"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1"\"Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",\"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",\"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",\"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",\"Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",\"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",\"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",\"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",\"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",\"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",\"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",\"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",\"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",\"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"]

最终运行结果:

呐呐呐,这就是一个小的scrapy项目了

Python的scrapy之爬取6毛小说网相关推荐

  1. 利用python的scrapy框架爬取google搜索结果页面内容

    scrapy google search 实验目的 爬虫实习的项目1,利用python的scrapy框架爬取google搜索结果页面内容. https://github.com/1012598167/ ...

  2. Python爬虫 scrapy框架爬取某招聘网存入mongodb解析

    这篇文章主要介绍了Python爬虫 scrapy框架爬取某招聘网存入mongodb解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 创建项目 sc ...

  3. python爬虫教程:Scrapy框架爬取Boss直聘网Python职位信息的源码

    今天小编就为大家分享一篇关于Scrapy框架爬取Boss直聘网Python职位信息的源码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧 分析 使用Crawl ...

  4. python之scrapy实战爬取表情包

    python之scrapy实战爬取表情包 前言:在之前我们学习了scrapy框架的基本使用,今天我们通过实战(爬取http://www.doutula.com的套图)来更加了解scrapy框架额使用, ...

  5. 爬取飞卢小说网的小说

    爬取飞卢小说网的任意小说 需要的库就三个 import requests import re import os 飞卢小说网的url关系很简单,主要的小说内容就是原来小说界面后面加了一个_1 爬虫函数 ...

  6. Python的Scrapy框架爬取诗词网站爱情诗送给女友

    文章目录 前言 效果展示: 一.安装scrapy库 二.创建scrapy项目 三.新建爬虫文件scmg_spider.py 四.配置settings.py文件 五.定义数据容器,修改item.py文件 ...

  7. Python网络爬虫:爬取腾讯招聘网职位信息 并做成简单可视化图表

    hello,大家好,我是wangzirui32,今天我们来学习如何爬取腾讯招聘网职位信息,并做成简单可视化图表,开始学习吧! 文章目录 1. 网页分析 2. 获取json数据 3. 转换为Excel ...

  8. Python爬虫实战 | (1) 爬取猫眼电影官网的TOP100电影榜单

    在本篇博客中,我们将使用requests+正则表达式来爬取猫眼电影官网的TOP100电影榜单,获取每部电影的片名,主演,上映日期,评分和封面等内容. 打开猫眼Top100,分析URL的变化:发现Top ...

  9. python爬上去飞卢_pyhon3爬虫爬取飞卢小说网小说

    想看小说,不想看花里胡哨的网页,想着爬下来存个txt,顺便练习一下爬虫. 随便先找了个看起来格式比较好的小说网站<飞卢小说网>做练习样本,顺便记录一下练习成果. ps:未登录,不能爬取VI ...

  10. Python的scrapy之爬取顶点小说网的所有小说

    闲来无事用Python的scrapy框架练练手,爬取顶点小说网的所有小说的详细信息. 看一下网页的构造: tr标签里面的 td 使我们所要爬取的信息 下面是我们要爬取的二级页面 小说的简介信息: 下面 ...

最新文章

  1. robo3t 连接服务器数据库_车牌识别软件连接各种数据库方法大全
  2. python No-ASCII character ,编码错误
  3. 不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况...
  4. Colaboratory挂载google drive的两种网盘
  5. 用 Python+openpose 实现抖音尬舞机
  6. 【代码笔记】iOS-点击城市中的tableView跳转到旅游景点的tableView,下面会有“显示”更多。...
  7. centos-7.2 node.js免编译安装
  8. Java实例化对象过程中的内存分配
  9. 《剑指Offer》38:字符串的排列
  10. 启动web项目(maven)
  11. 使用JAVASCRIPT实现弹出框,过一段时间自动消失
  12. DataLoader, when num_worker 0, there is bug
  13. 还在搞三层架构?DDD 分层架构了解下!
  14. mysql 5.7 binlog 压缩_MySQL binlog 压缩功能的相关介绍-爱可生
  15. win10+opencv+VS2015安装教程
  16. QT 5.12.9 +VS 2019配置并实现与三菱Q系列PLC通讯功能(1)软件的安装
  17. 随笔 - 记录下当前的生活
  18. 智课雅思词汇---十一、spect是什么意思
  19. ClouderaCDH安装配置说明
  20. 写信中“敬启者”与“敬启”的区别

热门文章

  1. python pandas 可视化初步使用 -- 股票价格区间天数统计柱状图
  2. httpclient发布application/octet-stream
  3. 【金融财经】金融市场一周简报(2017-09-22)
  4. H5 video 自动播放(autoplay)不生效解决方案
  5. 你需要权限来执行此操作 你需要来自Administrators的权限才能对此文件夹进行更改
  6. 计算机的文件夹打不开了,文件夹打不开,详细教您文件夹打不开怎么办
  7. 【多线程】解决SpringBoot热部署时layering-cache线程池被Tomcat Graceful shutdown,重新赋值方法区中 StatsServi
  8. 一些AUTOSAR会议论坛的介绍(附资料下载)
  9. 俄罗斯计算机三进制优缺点,为什么我们没有用上三进制的计算机
  10. 用计算机打课程表,怎么用电脑做课程表