爬起点小说 day02
总的来说起点小说还是挺好爬的,就是爬取小说的时候太慢了,4000多本小说就爬了2天一夜
首先爬取的是网页的所有类别,并把类别名存入到mongodb中,链接存到redis中:
import scrapy
from bson.objectid import ObjectId
from scrapy.http import Request
from qidianNovel.spiders.connectionSQL import getredis,getMongodb
# 把起点首页的所有列表
class spider_list(scrapy.Spider):
name = "spider_list" #要调用的名字
allowed_domains = ["qidian.com"] #分一个域
start_urls = [#所有要爬路径
"https://www.qidian.com/all?orderId=&page=1&style=1&pageSize=20&siteid=1&pubflag=0&hiddenField=0"
]
#每爬完一个网页会回调parse方法
def parse(self, response):
hx=response.xpath('//div[@class="work-filter type-filter"]/ul/li/a|//div[@class="work-filter type-filter"]/ul/li/a')
for i in range(1,len(hx)):
print(hx[i].select("text()").extract()[0]) # 取长度
Pid=self.insertMongodb(hx[i].select("text()").extract()[0],None)
url="https:"+hx[i].select("@href").extract()[0]
print(url)
request=Request(url,callback=lambda response,Pid=str(Pid):self.detail_list(response,Pid))
yield request
def detail_list(self,response,Pid):
links = response.xpath('//div[@class="sub-type"]/dl[@class=""]/dd/a')
pid=ObjectId(Pid)
for link in links:
print("***************")
print(link.select("text()").extract()[0])
print(link.select('@href').extract()[0])
print("***************")
cid=self.insertMongodb(link.select("text()").extract()[0],pid)
href="https:" + link.select('@href').extract()[0]
self.pushRedis(pid,cid,href)
def insertMongodb(self,className,pid):
bcollection = getMongodb('novel', 'boy_list')
id = bcollection.insert({'list_name': className, 'pid': pid})
return id
def pushRedis(self,pid,cid,href):
red = getredis()
href="%s,%s,%s" %(pid,cid,href)
red.lpush('bnovel_all_list',href)
爬起点小说 day02的更多相关文章
- 爬起点小说 day01
先介绍下我自己爬起点小说的思路: 1.爬取所有的类型列表 a.链接存redis中 类型表:novel_list 具体每一种类型:bnovel_all_list(把novel_list和bnovel_l ...
- 爬起点小说day03
# 把所有类别的前3页的小说爬取下来 import scrapyfrom scrapy.http import Requestfrom time import sleepfrom qidianNove ...
- Python实战项目网络爬虫 之 爬取小说吧小说正文
本次实战项目适合,有一定Python语法知识的小白学员.本人也是根据一些网上的资料,自己摸索编写的内容.有不明白的童鞋,欢迎提问. 目的:爬取百度小说吧中的原创小说<猎奇师>部分小说内容 ...
- python爬虫——爬取小说 | 探索白子画和花千骨的爱恨情仇(转载)
转载出处:药少敏 ,感谢原作者清晰的讲解思路! 下述代码是我通过自己互联网搜索和拜读完此篇文章之后写出的具有同样效果的爬虫代码: from bs4 import BeautifulSoup imp ...
- python之爬取小说
继上一篇爬取小说一念之间的第一章,这里将进一步展示如何爬取整篇小说 # -*- coding: utf- -*- import urllib.request import bs4 import re ...
- 用Python爬取小说《一念永恒》
我们首先选定从笔趣看网站爬取这本小说. 然后开始分析网页构造,这些与以前的分析过程大同小异,就不再多叙述了,只需要找到几个关键的标签和user-agent基本上就可以了. 那么下面,我们直接来看代码. ...
- Scrapy爬取小说简单逻辑
Scrapy爬取小说简单逻辑 一 准备工作 1)安装Python 2)安装PIP 3)安装scrapy 4)安装pywin32 5)安装VCForPython27.exe ........... 具体 ...
- 初次尝试python爬虫,爬取小说网站的小说。
本次是小阿鹏,第一次通过python爬虫去爬一个小说网站的小说. 下面直接上菜. 1.首先我需要导入相应的包,这里我采用了第三方模块的架包,requests.requests是python实现的简单易 ...
- python3下BeautifulSoup练习一(爬取小说)
上次写博客还是两个月以前的事,今天闲来无事,决定把以前刚接触python爬虫时的一个想法付诸行动:就是从网站上爬取小说,这样可以省下好多流量(^_^). 因为只是闲暇之余写的,还望各位看官海涵:不足之 ...
随机推荐
- 卸载ie
今天卸载ie11失败,最后使用下面这个命令实现了卸载,记录下 IE11卸载命令如下: FORFILES /P %WINDIR%\servicing\Packages /M Microsoft-Wind ...
- Oracle导出数据EXP00106错误
在导出dmp文件的时候(命令:exp 用户名/密码@IP/实例名 file=D:\20180910.dmp log=D:\20180910.log),遇到以下错误: 错误原因: 导出使用的是Orac ...
- pymysql操作mysql
一.使用PyMySQL操作mysql数据库 适用环境 python版本 >=2.6或3.3 mysql版本>=4.1 安装 可以使用pip安装也可以手动下载安装.使用pip安装,在命令行执 ...
- Page Lifecycle API
今天的现代浏览器有时在系统资源受限的情境下会暂停页面或完全放弃执行它.将来,浏览器会主动执行此操作,因此它们会消耗更少的电量和内存.在Chrome 68中提供的Page Lifecycle API提供 ...
- JIRA应用的内存参数设置不当+容器没有对资源进行限制导致服务挂掉的例子
背景: 应用的部署结构是这样的:使用rancher管理的Docker集群,有三台物理主机,二十多个Docker容器, 提供的功能是问题跟踪(JIRA),文档管理(Confluence),代码托管(sv ...
- 禅道迁移(windows_to_linux)
需求分析 随着禅道数据的增加,原来通过虚拟机提供的mysql服务器相应速度跟不上需求.且原来禅道的前端与数据库分离安装在windows与linux中,现在提供实体服务器,需要将禅道环境迁移. 确认环境 ...
- linux的基本操作(LNMP的基本操作)
LNMP 的环境搭建 和LAMP不同的是LNMP中的N指的是是Nginx(类似于Apache的一种web服务软件)其他都一样.目前这种环境应用的也是非常之多.Nginx设计的初衷是提供一种快速高效多并 ...
- getItemAt
getItemAt(0) 获得第一行数据 getItemAt(1) 获得第二行数据
- fiddler 抓手机包 and post get
手机一般用自己的手机 安装协议 用 自带浏览器安装 安装之后就任何浏览器都可以浏览 post get 查看 右键...Customize Columns ..Miscellaneous...R ...
- 2016ACM/ICPC亚洲区沈阳站 - A/B/C/E/G/H/I - (Undone)
链接:传送门 A - Thickest Burger - [签到水题] ACM ICPC is launching a thick burger. The thickness (or the heig ...