简明python教程 电子书,python入门电子书免费下载
相信阅读电子书是很多户主的必备项目,我们也不例外。只是有些书只能在网上看,没有下载链接,不能一页一页的抄。这不符合我们的风格。请让Python为我们复制它们!
Namespace大概分析了几个阅读网站的源码格式,发现了一些基本规律,并不能适用于所有。这要看房子主人的水平。我们这里只处理一般阅读网站的代码。
lxml导入树的导入请求这两个差不多就够了,一个用来获取网页内容,一个用来分析Dom树结构,找到我们想要的章节内容。
先说一个方法def gethtmlbyurl(url):r response=requests . get(URL)r response . encoding= UTF-8 #中文有很多乱码,试图读取内容rHtml=etree.html(r response . content)#使用UTF-8编码的文本有时无法获取值,所以这里我们使用content return rHtml根据URL获取网页的内容。只有拿到网页的源代码,才能得到我们想要的。
定义几个初始化变量,因为我写过几个网站。为了方便代码共享,人们可以直接在代码中编写xpath语句,而没有这个需求。
BaseUrl= #正常获取的章节链接都是短链接。你得拼接网站的域名才能正常获取每章内容。记得填!Path=/* [@ id= list]/dl/dd #根据网页内容的不同,章节目录所在的节点可能会有所不同。修改titlePath=a/text() #同上,修改hrefPath=a/@href #同上,修改content path=/*[@ id= content ]/text() #同上,根据情况直接修改代码url=http://. #这里填写你要复制的书目章节和目录的链接HTML=gethtmlbyurl(URL)lstcapture=HTML . XPath(list path)在lst capture中进行抓取:# Get chapter title=capture . XPath(title path)[0]print(a title)# Get chapter link a href=capture . XPath(href path)[0]new URL=base URL a href #处理文章内容的特殊链接。如果没有这样的要求,可以删除这个,具体的链接样式和处理方式取决于你的网页内容如果a href . find( https )=0:new URL=a href print(new URL)new html=gethtmlbyurl(new URL)#获取章节内容new content=new html . XPath(content path)str content=a title \ n #将文章内容拼接成文本可读的格式进行处理,否则对于新内容中的strline来说可能看起来有点不可读:ifstrline .= :str content=strline . replace( \ n , )。替换( \ r , ) \ n #用open(yourBookName.txt , a ,Encoding= UTF-8 )作为F: F. Write (strContent \ n) PS这里有一个引用。有条件的话,最好支持房子买纸质书。像我这样可怜的失败者只能想到这些省钱的方法!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。