利用Python scapy爬取起点小说网小说
土木狗,大二,混吃等死不知老之将至。
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爬取起点小说网小说相关推荐
- python爬虫之爬取起点中文原创小说排行榜
学习python有段时间了,最近做了一个网上爬虫工具爬取起点中文原创小说排行榜数据,作为最近学习python的一个阶段性成果. 工具 对于做网络爬虫工具经常用到的就是chrome浏览器,主要用于抓取网 ...
- Python 数据采集-爬取学校官网新闻标题与链接(基础)
Python 爬虫爬取学校官网新闻标题与链接 一.前言 二.扩展库简要介绍 01 urllib 库 (1)urllib.request.urlopen() 02 BeautifulSoup 库 (1) ...
- 使用Scrapy框架爬取88读书网小说,并保存本地文件
Scrapy框架,爬取88读书网小说 链接: 88读书网 源码 工具 python 3.7 pycharm scrapy框架 教程 spider: # -*- coding: utf-8 -*- im ...
- python selenium爬取去哪儿网的酒店信息——详细步骤及代码实现
目录 准备工作 一.webdriver部分 二.定位到新页面 三.提取酒店信息 ??这里要注意?? 四.输出结果 五.全部代码 准备工作 1.pip install selenium 2.配置浏览器驱 ...
- Python+scrapy爬取36氪网
Python+Scrapy爬取36氪网新闻 一.准备工作: ①安装python3 ②安装scrapy ③安装docker,用来运行splash,splash是用来提供js渲染服务(pyth ...
- Python 数据采集-爬取学校官网新闻标题与链接(进阶)
Python 爬虫爬取学校官网新闻标题与链接(进阶) 前言 一.拼接路径 二.存储 三.读取翻页数据 四.完整代码展示 五.小结 前言 ⭐ 本文基于学校的课程内容进行总结,所爬取的数据均为学习使用,请 ...
- 【爬虫】利用Python爬虫爬取小麦苗itpub博客的所有文章的连接地址并写入Excel中(2)...
[爬虫]利用Python爬虫爬取小麦苗itpub博客的所有文章的连接地址并写入Excel中(2) 第一篇( http://blog.itpub.net/26736162/viewspace-22865 ...
- python为啥爬取数据会有重复_利用Python来爬取“吃鸡”数据,为什么别人能吃鸡?...
原标题:利用Python来爬取"吃鸡"数据,为什么别人能吃鸡? 首先,神装镇楼 背景 最近老板爱上了吃鸡(手游:全军出击),经常拉着我们开黑,只能放弃午休的时间,陪老板在沙漠里奔波 ...
- python爬虫爬取彼岸图网图片
python爬虫爬取彼岸图网图片 话不多说,直接上代码! import requests from PIL import Image from io import BytesIO import re ...
- 利用python+selenium爬取derwent数据库上的patents
利用python+selenium爬取derwent数据库上的patents 需求: 登陆web of science,并进入derwent数据库,按照公司excel列表依次进行搜索,并将所有搜索道德 ...
最新文章
- 应用phpcms时遇到的问题及smarty标签的应用
- python的property用法_python @property的用法及含义全面解析
- c代码实现 ifft运算_fft算法c语言_matlab fft算法_ifft c语言
- python的基础集合(八)
- Java单链表中的元素互换位置_Java如何在链表的第一个和最后一个位置添加一个元素?...
- maven阿里仓库配置教程
- 好玩,易推广,猜骰子游戏
- 我的世界服务端java路径_我的世界服务端java路径咋样设置?
- oneNote笔记名不同步
- linux dd安装win2003,DD安装win2003,2008系统
- 关于app申请软件著作权登记时软件名称命名的问题
- 手撸JDK之ReentrantLock锁那点事
- 【Spring Data ElasticSearch】高级查询,聚合
- 2007武汉房地产数据分析报告
- 安全日志:/var/log/secure 详解
- Ubuntu16.04 64位系统下面安装JDK1.7
- wordpress:主题-一个完整的WP主题通常包含以下模板文件
- matlab怎么读取simulink中的时序数据?
- 微信小程序开发需要什么前提条件?
- ubuntu先anaconda中python3与ros共存时opencv报错
热门文章
- 网络传输的七层协议(包括tcp协议和udp协议的区别)
- element-ui下拉框全选
- 正则 - 纳税人识别号
- 列举在100到200以内的质数
- c语言输入若干学生成绩 计算平均,从键盘输入若干名学生的成绩,当输入-1时结束,统计出及格人数...
- 华为鸿蒙用不用清理内存卡,华为这6个设置必须要关,否则天天清理内存也没用,关了再用5年...
- 我该如何带好你—我的团队
- 语音合成论文优选:Mixture Density Network for Phone-Level Prosody Modelling in Speech Synthesis
- 18位身份证校验代码
- 特征点匹配(SIFI)