土木狗,大二,混吃等死不知老之将至。

items.py

import scrapyclass QidianItem(scrapy.Item):title = scrapy.Field()content = scrapy.Field()
pipelines.py
import os
class QidianPipeline(object):# def __init__(self):#def process_item(self, item, spider):#根据书名来创建文件,item.get('title')就可以获取到书名os.chdir(path=r'/home/administrator/PycharmProjects/untitled/qidian/qidian/en')with open(file=str(item.get('title'))+".txt",mode='a') as f:f.write(item.get('content'))return item
settings.py
LOG_LEVEL= 'ERROR'LOG_FILE ='log.txt'
爬虫文件
import scrapy
# from scrapy.linkextractors import LinkExtractor
# from scrapy.spiders import CrawlSpider , Rule
from ..items import QidianItem
class XiaoshuoSpider(scrapy.Spider):name = 'xiaoshuo'allowed_domains = ['qidian.com']start_urls = ["https://www.qidian.com/all?orderId=&style=1&pageSize=20&siteid=1&pubflag=0&hiddenField=0&page="+str(page) for page in range(100,200)]def parse(self, response):#获取每本书的url,并且将链逐个交给下一个方法处理for url_ in response.xpath("//h4/a/@href").extract():yield scrapy.Request('https:'+str(url_),callback=self.parse_info)def parse_info(self,response):item = QidianItem()#获取小说标题title = response.xpath("//h1/em/text()").extract()[0]self.title_ = titleprint("开始爬取小说:"+title)#作为文件名item['title'] = title#获取免费阅读链接,并且交由parse__content 方法处理info_url = response.xpath("//a[@id='readBtn']/@href").extract()[0]yield scrapy.Request("https:"+str(info_url),meta={'item':item},callback=self.parse_content)#获取说章节,并且进行递归,重复获取def parse_content(self,response):#获取章节标题name = response.xpath("//h3[@class='j_chapterName']/text()").extract()[0]+"\n"print("正在爬取小说******《"+self.title_+"》******章节:---------------"+name)content = name +''for str_ in response.xpath("//div[@class='read-content j_readContent']//p/text()").extract():content = content +str_[1:]#获取上面传过来的itemitem = response.meta['item']#将书的章节及章节内容存入content字段中item['content'] = contentnext_url = 'https:' + response.xpath("//a[@id='j_chapterNext']/@href").extract()[0]#过滤收费章节,count = 0if len(content) > 250:try:yield itemyield scrapy.Request(str(next_url),meta={'item':item},callback=self.parse_content)except:print("---------------------------------------------------------------------------")else: print("免费章节已经完啦!")

利用Python scapy爬取起点小说网小说相关推荐

  1. python爬虫之爬取起点中文原创小说排行榜

    学习python有段时间了,最近做了一个网上爬虫工具爬取起点中文原创小说排行榜数据,作为最近学习python的一个阶段性成果. 工具 对于做网络爬虫工具经常用到的就是chrome浏览器,主要用于抓取网 ...

  2. Python 数据采集-爬取学校官网新闻标题与链接(基础)

    Python 爬虫爬取学校官网新闻标题与链接 一.前言 二.扩展库简要介绍 01 urllib 库 (1)urllib.request.urlopen() 02 BeautifulSoup 库 (1) ...

  3. 使用Scrapy框架爬取88读书网小说,并保存本地文件

    Scrapy框架,爬取88读书网小说 链接: 88读书网 源码 工具 python 3.7 pycharm scrapy框架 教程 spider: # -*- coding: utf-8 -*- im ...

  4. python selenium爬取去哪儿网的酒店信息——详细步骤及代码实现

    目录 准备工作 一.webdriver部分 二.定位到新页面 三.提取酒店信息 ??这里要注意?? 四.输出结果 五.全部代码 准备工作 1.pip install selenium 2.配置浏览器驱 ...

  5. Python+scrapy爬取36氪网

    Python+Scrapy爬取36氪网新闻 一.准备工作: ​ ①安装python3 ​ ②安装scrapy ​ ③安装docker,用来运行splash,splash是用来提供js渲染服务(pyth ...

  6. Python 数据采集-爬取学校官网新闻标题与链接(进阶)

    Python 爬虫爬取学校官网新闻标题与链接(进阶) 前言 一.拼接路径 二.存储 三.读取翻页数据 四.完整代码展示 五.小结 前言 ⭐ 本文基于学校的课程内容进行总结,所爬取的数据均为学习使用,请 ...

  7. 【爬虫】利用Python爬虫爬取小麦苗itpub博客的所有文章的连接地址并写入Excel中(2)...

    [爬虫]利用Python爬虫爬取小麦苗itpub博客的所有文章的连接地址并写入Excel中(2) 第一篇( http://blog.itpub.net/26736162/viewspace-22865 ...

  8. python为啥爬取数据会有重复_利用Python来爬取“吃鸡”数据,为什么别人能吃鸡?...

    原标题:利用Python来爬取"吃鸡"数据,为什么别人能吃鸡? 首先,神装镇楼 背景 最近老板爱上了吃鸡(手游:全军出击),经常拉着我们开黑,只能放弃午休的时间,陪老板在沙漠里奔波 ...

  9. python爬虫爬取彼岸图网图片

    python爬虫爬取彼岸图网图片 话不多说,直接上代码! import requests from PIL import Image from io import BytesIO import re ...

  10. 利用python+selenium爬取derwent数据库上的patents

    利用python+selenium爬取derwent数据库上的patents 需求: 登陆web of science,并进入derwent数据库,按照公司excel列表依次进行搜索,并将所有搜索道德 ...

最新文章

  1. 应用phpcms时遇到的问题及smarty标签的应用
  2. python的property用法_python @property的用法及含义全面解析
  3. c代码实现 ifft运算_fft算法c语言_matlab fft算法_ifft c语言
  4. python的基础集合(八)
  5. Java单链表中的元素互换位置_Java如何在链表的第一个和最后一个位置添加一个元素?...
  6. maven阿里仓库配置教程
  7. 好玩,易推广,猜骰子游戏
  8. 我的世界服务端java路径_我的世界服务端java路径咋样设置?
  9. oneNote笔记名不同步
  10. linux dd安装win2003,DD安装win2003,2008系统
  11. 关于app申请软件著作权登记时软件名称命名的问题
  12. 手撸JDK之ReentrantLock锁那点事
  13. 【Spring Data ElasticSearch】高级查询,聚合
  14. 2007武汉房地产数据分析报告
  15. 安全日志:/var/log/secure 详解
  16. Ubuntu16.04 64位系统下面安装JDK1.7
  17. wordpress:主题-一个完整的WP主题通常包含以下模板文件
  18. matlab怎么读取simulink中的时序数据?
  19. 微信小程序开发需要什么前提条件?
  20. ubuntu先anaconda中python3与ros共存时opencv报错

热门文章

  1. 网络传输的七层协议(包括tcp协议和udp协议的区别)
  2. element-ui下拉框全选
  3. 正则 - 纳税人识别号
  4. 列举在100到200以内的质数
  5. c语言输入若干学生成绩 计算平均,从键盘输入若干名学生的成绩,当输入-1时结束,统计出及格人数...
  6. 华为鸿蒙用不用清理内存卡,华为这6个设置必须要关,否则天天清理内存也没用,关了再用5年...
  7. 我该如何带好你—我的团队
  8. 语音合成论文优选:Mixture Density Network for Phone-Level Prosody Modelling in Speech Synthesis
  9. 18位身份证校验代码
  10. 特征点匹配(SIFI)