Python电子书下载
写在前面的话
相信很多的宅们看电子书是必不可少的一个项目,咱也不例外,只是有些书只能在线读,没有下载链接,总不能一页页的复制吧,不符合咱的行事风格,请出 Python帮咱们复制喽!
命名空间
大概分析了几个读书网站的源代码格式,找到一些基本规律,不能适用所有,看宅们的水平了,咱这里只是一般读书网站的代码处理
import requests
from lxml import etree
这两个差不多就够了,一个用来获取网页内容,一个用来分析Dom树结构,找到我们想要的章节内容
先来一个方法
def getHtmlByUrl(url):rResponse = requests.get(url)rResponse.encoding = "utf-8" #中文很多时候会出现乱码,尝试使用utf-8编码读取内容rHtml = etree.HTML(rResponse.content) #text有时候取不到值,故这里使用contentreturn rHtml
根据 Url 来获取网页的内容,只有得到网页源代码,咱们才能取得想要的不是
定义几个初始化变量
因为我写了几个网站的,为了代码共享的方便,宅们没这个需求也可以直接把xpath语句写在代码中
baseUrl = "" #正常获取到的章节链接都是短链接,要拼接上网站域名才能正常获取每一章的内容,记得填写哦!
listPath = '//*[@id="list"]/dl/dd' #根据网页内容的不同,章节目录所在节点可能有差异,视情况修改
titlePath = "a/text()" #同上,视情况修改
hrefPath = "a/@href" #同上,视情况修改
contentPath = '//*[@id="content"]/text()' #同上,视情况修改
直接上代码
url = "http://..." #这里填上你想要复制的书目章节目录链接
html = getHtmlByUrl(url)
lstCapture = html.xpath(listPath)
for capture in lstCapture:# 获取章节标题aTitle = capture.xpath(titlePath)[0]print(aTitle)# 获取章节链接aHref = capture.xpath(hrefPath)[0]newUrl = baseUrl + aHref#处理文章内容特殊链接,如果没有这个需求,可以把这个删除,具体链接样式和处理方式要看你的网页内容if aHref.find('https') >= 0:newUrl = aHrefprint(newUrl)newHtml = getHtmlByUrl(newUrl)# 获取章节内容newContent = newHtml.xpath(contentPath)strContent = aTitle + '\n'# 处理文章内容拼接成文本可读格式,不然出来的样子可能有点可读性不高for strLine in newContent:if strLine.strip() != "":strContent += strLine.replace('\n','').replace('\r','') + '\n'# 写入到文本文件with open("yourBookName.txt", 'a', encoding='utf-8') as f:f.write(strContent + '\n')
PS
这里提供一个参考,如果条件允许,还是支持宅们买纸质书来看比较爽,像我这们穷屌丝就只能想这些节省口袋的方式啦!
Python电子书下载相关推荐
- Python做一个Kindle电子书下载助手,真香!
哈喽,大家好,我是菜鸟哥! 大家有没有想过把亚马逊网站上的Kindle电子书下载到自己的电脑上? 今天分享的项目可以帮大家实现这一目的.该项目用Python开发,简单.好用.开源. 下面分享下项目的使 ...
- Python网络爬虫实战案例之:7000本电子书下载(2)
一.前言 本文是<Python开发实战案例之网络爬虫>的第二部分:7000本电子书下载网络爬虫开发环境安装部署.配套视频课程详见网易云课堂 二.章节目录 (1)Python开发环境依赖 ( ...
- python模拟登录页面下载_Python爬虫实战入门四:使用Cookie模拟登录——获取电子书下载链接...
在实际情况中,很多网站的内容都是需要登录之后才能看到,如此我们就需要进行模拟登录,使用登录后的状态进行爬取.这里就需要使用到Cookie. 现在大多数的网站都是使用Cookie跟踪用户的登录状态,一旦 ...
- python模拟登记获取cookie_Python爬虫实战入门四:使用Cookie模拟登录——获取电子书下载链接...
在实际情况中,很多网站的内容都是需要登录之后才能看到,如此我们就需要进行模拟登录,使用登录后的状态进行爬取.这里就需要使用到Cookie. 使用Cookie进行模拟登录 现在大多数的网站都是使用Coo ...
- python爬虫登录下载_Python爬虫实战入门四:使用Cookie模拟登录——获取电子书下载链接...
在实际情况中,很多网站的内容都是需要登录之后才能看到,如此我们就需要进行模拟登录,使用登录后的状态进行爬取.这里就需要使用到Cookie. 现在大多数的网站都是使用Cookie跟踪用户的登录状态,一旦 ...
- 零基础学python电子书-资料│最适合大学生零基础学的Python视频+电子书
原标题:资料│最适合大学生零基础学的Python视频+电子书 月最热资源下载 (▲点击阅读) 已经不少童鞋跟播妞咨询了python的资源 今天播妞将整理好的部分python资源发布 是最适合零基础大学 ...
- 《量化投资策略如何现额益简及PDF电子书下载
转 <量化投资策略--如何实现超额收益>简介及PDF电子书下载 内容简介: <量化投资与对冲基金丛书·量化投资策略:如何实现超额收益Alpha>的目标是:为读者提供一幅从量化角 ...
- 《量化交易:如何建立自己的算法交易》简介及PDF电子书下载
转 <量化交易:如何建立自己的算法交易>简介及PDF电子书下载 内容简介: <量化交易(如何建立自己的算法交易事业)>绝不是一本量化交易技术或量化交易术语的百科全书,也不是专门 ...
- 计算机专业免费电子书下载列表List of freely available programming books
计算机专业免费电子书下载列表 List of freely available progra ...
- 程序员必备免费电子书下载网站
程序员必备免费电子书下载网站 作为开发者,多多少少都会看些技术书籍,许多经典的技术书籍作者都是国外的,等到中文翻译版出来很多书籍可能已经不适用了,购买原版书籍,价格又太高,因此知道一些免费的图书下载网 ...
最新文章
- 你真的理解“吃亏是福”么?
- USB Kill v2.0,一个可以瞬间烧毁电脑或平板的“U盘”
- 不常见但很有用的chrome调试工具使用方法
- NLP:基于nltk和jieba库对文本实现提取文本摘要(两种方法实现:top_n_summary和mean_scored_summary)
- [Django青铜修炼手册] 初识Django
- 做了6年的Java,mysql配置环境变量mac
- gym101808 E
- WPF中路由事件的传播
- 程序设计基础要用计算机吗,计算机二级公共基础知识|程序设计基础
- 如何获取Android手机连接当前网络的外网IP
- TX2 配置xbox360无线手柄
- python xlwt 写入Excel
- linux基本操作大全centos7
- 【影评】海贼王:855
- 棋牌游戏进入游戏房间流程
- js完美转换阿拉伯数字为数字大写
- IDEA Translation插件中有道智云(有道翻译)应用ID,密钥申请教程
- Android调试工具ADB
- 软件测试条件组合覆盖三角形,软件测试三角形问题(覆盖测试)
- 博客 SEO:优化 SEO 博客文章的 47 个专业技巧