xpath+多进程爬取全书网纯爱耽美类别的所有小说。
# 需要的库
import requests
from lxml import etree
from multiprocessing import Pool
import os
# 请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'
}
# 创建存储路径
pathname = './全书网/'
if not os.path.exists(pathname):
os.mkdir(pathname)
# 获取书籍列表
def get_booklist(url):
try:
response = requests.get(url=url,headers=headers)
etrees = etree.HTML(response.text)
sum = etrees.xpath('//a[@class="last"]/text()')[0]
booklist = etrees.xpath('//ul[@class="seeWell cf"]/li')
book_list = []
for books in booklist:
book = books.xpath('./a/@href')[0]
book_list.append(book)
pool.map(get_book,book_list)
urls = ['http://www.quanshuwang.com/list/3_{}.html'.format(i) for i in range(2,int(sum)+1)]
pool.map(get_booklist,urls)
except Exception:
print('get_booklist failed')
# 获取具体书籍
def get_book(url):
try:
response = requests.get(url=url, headers=headers)
etrees = etree.HTML(response.content.decode("gb18030"))
book_name = etrees.xpath('//div[@class="b-info"]/h1/text()')[0]
if os.path.exists(pathname+book_name+'.txt'):
print(book_name+'.书籍已存在,如需重新下载请删除原文件')
return None
book = etrees.xpath('//div[@class="b-oper"]/a/@href')[0]
get_mulu(book)
except Exception:
print('get_book failed')
# 获取书籍目录
def get_mulu(url):
try:
response = requests.get(url=url, headers=headers)
etrees = etree.HTML(response.text)
book = etrees.xpath('//div[@class="clearfix dirconone"]/li')
for i in book:
book = i.xpath('./a/@href')[0]
get_content(book)
except Exception:
print('get_mulu failed')
# 获取并写入书籍内容
def get_content(url):
try:
response = requests.get(url=url, headers=headers)
etrees = etree.HTML(response.content.decode("gb18030"))
title = etrees.xpath('//a[@class="article_title"]/text()')[0]
zhangjie = etrees.xpath('//strong[@class="l jieqi_title"]/text()')[0]
contents = etrees.xpath('//div[@class="mainContenr"]/text()')
content = ''.join(contents)
with open(pathname+title+'.txt','a+',encoding='utf-8') as f:
f.write(zhangjie+'\n\n'+content+'\n\n')
print('正在下载:',zhangjie)
except Exception:
print('get_content failed')
# 程序入口
if __name__ == '__main__':
url = 'http://www.quanshuwang.com/list/3_1.html'
# 创建进程池
pool = Pool()
# 启动程序
get_booklist(url)
控制台输出
正在下载: 章 节目录 第三十四章 不眠的天堂
正在下载: 章 节目录 第四十四章 :耳光
正在下载: 章 节目录 第046章 找到变异元晶
正在下载: 章节目录 第二十八章 修路优惠
正在下载: 章 节目录 第四十五章 :憋屈
正在下载: 章 节目录 第047章 至宝得手
正在下载: 章节目录 第二十九章 猜鱼
正在下载: 章 节目录 第048章 凤凰涅槃,浴火重生。
正在下载: 章节目录 第三十章 养猪场
正在下载: 章 节目录 第四十六章 :酣畅淋漓
正在下载: 章 节目录 第049章 上等天赋资质
正在下载: 章节目录 第三十一章 上鬼身
正在下载: 章 节目录 第050章 元力神兵
正在下载: 章 节目录 第四十七章 :舵主之位
正在下载: 章 节目录 第三十五章 黑暗
正在下载: 章节目录 第三十二章 吓死马有钱
正在下载: 章 节目录 第三十六章 商议
正在下载: 章 节目录 第051章 天级上品龙隐术
正在下载: 章 节目录 第三十七章 寻觅
正在下载: 章节目录 第三十三章 再遇李三
正在下载: 章节目录 第三十四章 借了一百万
打开文件夹查看是否下载成功
done。
xpath+多进程爬取全书网纯爱耽美类别的所有小说。的更多相关文章
- xpath+多进程爬取八零电子书百合之恋分类下所有小说。
代码 # 需要的库 import requests from lxml import etree from multiprocessing import Pool import os # 请求头 he ...
- 爬虫入门(四)——Scrapy框架入门:使用Scrapy框架爬取全书网小说数据
为了入门scrapy框架,昨天写了一个爬取静态小说网站的小程序 下面我们尝试爬取全书网中网游动漫类小说的书籍信息. 一.准备阶段 明确一下爬虫页面分析的思路: 对于书籍列表页:我们需要知道打开单本书籍 ...
- Python爬虫爬取全书网小说,程序源码+程序详细分析
Python爬虫爬取全书网小说教程 第一步:打开谷歌浏览器,搜索全书网,然后再点击你想下载的小说,进入图一页面后点击F12选择Network,如果没有内容按F5刷新一下 点击Network之后出现如下 ...
- 使用Xpath+多进程爬取诗词名句网的史书典籍类所有文章。update~
上次写了爬取这个网站的程序,有一些地方不完善,而且爬取速度较慢,今天完善一下并开启多进程爬取,速度就像坐火箭.. # 需要的库 from lxml import etree import reques ...
- xpath+多进程爬取网易云音乐热歌榜。
用到的工具,外链转换工具 网易云网站直接打开源代码里面并没有对应的歌曲信息,需要对url做处理, 查看网站源代码路径:发现把里面的#号去掉会显示所有内容, 右键打开的源代码路径:view-source ...
- 使用scrapy框架爬取全书网书籍信息。
爬取的内容:书籍名称,作者名称,书籍简介,全书网5041页,写入mysql数据库和.txt文件 1,创建scrapy项目 scrapy startproject numberone 2,创建爬虫主程序 ...
- 利用xpath爬取招聘网的招聘信息
爬取招聘网的招聘信息: import json import random import time import pymongo import re import pandas as pd impor ...
- Scrapy爬虫(5)爬取当当网图书畅销榜
本次将会使用Scrapy来爬取当当网的图书畅销榜,其网页截图如下: 我们的爬虫将会把每本书的排名,书名,作者,出版社,价格以及评论数爬取出来,并保存为csv格式的文件.项目的具体创建就不再多讲 ...
- Python爬虫项目--爬取自如网房源信息
本次爬取自如网房源信息所用到的知识点: 1. requests get请求 2. lxml解析html 3. Xpath 4. MongoDB存储 正文 1.分析目标站点 1. url: http:/ ...
随机推荐
- vue-cli入门 - 搭建项目打包运行+webpack打包
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_38225558/article/d ...
- 搭建ELK日志分析平台
(上)—— ELK介绍及搭建 Elasticsearch 分布式集群 http://blog.51cto.com/zero01/2079879 (下)—— 搭建kibana和logstash服务器 h ...
- IBM X3650 M4 M5 设置服务器用UEFI模式启动支持磁盘GPT分区
1 系统启动 2 按 F1 3 进入BIOS 4 进入 System Configuration 5 找到 Boot Manager 6 找到Boot Modes 7 进入Boot Modes, 找到 ...
- mysql 安装为服务 ,mysql.zip 安装为服务,mysql搬移迁移服务器安装为服务
从服务器A打包到服务器B后,在服务器B中运行安装服务命令,可自定义服务名,一台服务器上可装N个MySql实例 mysqld --install MySQL_0001 --defaults-file=D ...
- [QT] - MjpegStreamer客户端(简易版)#工程源码
简介: 大学时期学习弄的一个小软件,可以起到示例的作用,软件的几个功能截图如正文所示,文末提供工程源码文件,感谢支持! 功能截图: [ 开发板启动 mjpg_streamer 服务器 ] [ 启动软件 ...
- LeetCode 942. 增减字符串匹配(DI String Match) 49
942. 增减字符串匹配 942. DI String Match 题目描述 每日一算法2019/6/21Day 49LeetCode942. DI String Match Java 实现 and ...
- 56 容器(十)——Iterator迭代器遍历容器
迭代器的获取 LIst与Set容器统一使用他们的对象.Iterator()方法获得迭代器对象,然后使用while循环配合迭代器的方法hasNext()及next()来遍历容器. List<Str ...
- 1. Spark Streaming概述
1.1 什么是Spark Streaming Spark Streaming类似于Apache Storm,用于流式数据的处理.根据其官方文档介绍,Spark Streaming有高吞吐量和容错能力强 ...
- C# vb .net实现倾斜效果滤镜
在.net中,如何简单快捷地实现Photoshop滤镜组中的倾斜效果呢?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码: 设置授权 第一步 ...
- Django后台管理admin或者adminx中使用富文本编辑器
在admin或者adminx后台中使用富文本编辑器 一.建立模型:(安装django-tinymce==2.6.0) from django.db import models from tinymce ...