首页 > 编程知识 正文

python基础教程电子书,python入门电子书免费

时间:2023-05-03 16:50:47 阅读:269321 作者:1160

写在前面的话

相信很多的宅们看电子书是必不可少的一个项目,咱也不例外,只是有些书只能在线读,没有下载链接,总不能一页页的复制吧,不符合咱的行事风格,请出 Python帮咱们复制喽!

命名空间

大概分析了几个读书网站的源代码格式,找到一些基本规律,不能适用所有,看宅们的水平了,咱这里只是一般读书网站的代码处理

import requestsfrom lxml import etree

这两个差不多就够了,一个用来获取网页内容,一个用来分析Dom树结构,找到我们想要的章节内容

先来一个方法 def getHtmlByUrl(url): rResponse = requests.get(url) rResponse.encoding = "utf-8" #中文很多时候会出现乱码,尝试使用utf-8编码读取内容 rHtml = etree.HTML(rResponse.content) #text有时候取不到值,故这里使用content return 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 = aHref print(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

这里提供一个参考,如果条件允许,还是支持宅们买纸质书来看比较爽,像我这们穷屌丝就只能想这些节省口袋的方式啦!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。