写在前面的话

相信很多的宅们看电子书是必不可少的一个项目,咱也不例外,只是有些书只能在线读,没有下载链接,总不能一页页的复制吧,不符合咱的行事风格,请出 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电子书下载相关推荐

  1. Python做一个Kindle电子书下载助手,真香!

    哈喽,大家好,我是菜鸟哥! 大家有没有想过把亚马逊网站上的Kindle电子书下载到自己的电脑上? 今天分享的项目可以帮大家实现这一目的.该项目用Python开发,简单.好用.开源. 下面分享下项目的使 ...

  2. Python网络爬虫实战案例之:7000本电子书下载(2)

    一.前言 本文是<Python开发实战案例之网络爬虫>的第二部分:7000本电子书下载网络爬虫开发环境安装部署.配套视频课程详见网易云课堂 二.章节目录 (1)Python开发环境依赖 ( ...

  3. python模拟登录页面下载_Python爬虫实战入门四:使用Cookie模拟登录——获取电子书下载链接...

    在实际情况中,很多网站的内容都是需要登录之后才能看到,如此我们就需要进行模拟登录,使用登录后的状态进行爬取.这里就需要使用到Cookie. 现在大多数的网站都是使用Cookie跟踪用户的登录状态,一旦 ...

  4. python模拟登记获取cookie_Python爬虫实战入门四:使用Cookie模拟登录——获取电子书下载链接...

    在实际情况中,很多网站的内容都是需要登录之后才能看到,如此我们就需要进行模拟登录,使用登录后的状态进行爬取.这里就需要使用到Cookie. 使用Cookie进行模拟登录 现在大多数的网站都是使用Coo ...

  5. python爬虫登录下载_Python爬虫实战入门四:使用Cookie模拟登录——获取电子书下载链接...

    在实际情况中,很多网站的内容都是需要登录之后才能看到,如此我们就需要进行模拟登录,使用登录后的状态进行爬取.这里就需要使用到Cookie. 现在大多数的网站都是使用Cookie跟踪用户的登录状态,一旦 ...

  6. 零基础学python电子书-资料│最适合大学生零基础学的Python视频+电子书

    原标题:资料│最适合大学生零基础学的Python视频+电子书 月最热资源下载 (▲点击阅读) 已经不少童鞋跟播妞咨询了python的资源 今天播妞将整理好的部分python资源发布 是最适合零基础大学 ...

  7. 《量化投资策略如何现额益简及PDF电子书下载

    转 <量化投资策略--如何实现超额收益>简介及PDF电子书下载 内容简介: <量化投资与对冲基金丛书·量化投资策略:如何实现超额收益Alpha>的目标是:为读者提供一幅从量化角 ...

  8. 《量化交易:如何建立自己的算法交易》简介及PDF电子书下载

    转 <量化交易:如何建立自己的算法交易>简介及PDF电子书下载 内容简介: <量化交易(如何建立自己的算法交易事业)>绝不是一本量化交易技术或量化交易术语的百科全书,也不是专门 ...

  9. 计算机专业免费电子书下载列表List of freely available programming books

                                    计算机专业免费电子书下载列表                       List of freely available progra ...

  10. 程序员必备免费电子书下载网站

    程序员必备免费电子书下载网站 作为开发者,多多少少都会看些技术书籍,许多经典的技术书籍作者都是国外的,等到中文翻译版出来很多书籍可能已经不适用了,购买原版书籍,价格又太高,因此知道一些免费的图书下载网 ...

最新文章

  1. 你真的理解“吃亏是福”么?
  2. USB Kill v2.0,一个可以瞬间烧毁电脑或平板的“U盘”
  3. 不常见但很有用的chrome调试工具使用方法
  4. NLP:基于nltk和jieba库对文本实现提取文本摘要(两种方法实现:top_n_summary和mean_scored_summary)
  5. [Django青铜修炼手册] 初识Django
  6. 做了6年的Java,mysql配置环境变量mac
  7. gym101808 E
  8. WPF中路由事件的传播
  9. 程序设计基础要用计算机吗,计算机二级公共基础知识|程序设计基础
  10. 如何获取Android手机连接当前网络的外网IP
  11. TX2 配置xbox360无线手柄
  12. python xlwt 写入Excel
  13. linux基本操作大全centos7
  14. 【影评】海贼王:855
  15. 棋牌游戏进入游戏房间流程
  16. js完美转换阿拉伯数字为数字大写
  17. IDEA Translation插件中有道智云(有道翻译)应用ID,密钥申请教程
  18. Android调试工具ADB
  19. 软件测试条件组合覆盖三角形,软件测试三角形问题(覆盖测试)
  20. 博客 SEO:优化 SEO 博客文章的 47 个专业技巧

热门文章

  1. Java实现校园论坛系统
  2. 堆排序的Java实现
  3. EXCEL 趋势图生成的公式应用说明
  4. oracle+erp+采购管理操作手册 - 图文 - 百度文库
  5. 成人大专计算机自我鉴定300字,自我鉴定300字成人大专
  6. 某度文库付费文档下载,实测可用~
  7. 安防与消防融合发展的现状与机遇分析
  8. 字节跳动面试分享:java从入门到精通第五版答案位置
  9. Pawn Storm网络间谍行动再度现身
  10. 推荐系统实战1——什么是推荐系统与常见的推荐系统评价指标