本文主要是介绍Python 爬虫:爬《权力的游戏》中英对照版,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
VOA英文网有中英对照版 《权力的游戏》 http://www.tingvoa.com/html/454618.html,但是只能在线看,而且每次不小段的太不方便了,想把它爬下来整理成大篇的,放到kindle上慢慢看。手工点了几页,每页复制到文本文件里,工作量太大了。于是就有了自己写个爬虫自动抓取的想法。说干就干。
http://www.tingvoa.com/html/454618.html 先分析它的HTML源:
程序的功能就是要取每页特定部分的内容,剔除掉不要的内容,对取到的内容加工写入txt文件,并抓取下一页的地址。一页一页循环抓取。。
主要代码如下:
#!/usr/bin/python
# -*- coding: gbk -*-
# by gnolux 20190524
# email: fangkailove@yeah.netfrom urllib import request
import reurl = 'http://www.tingvoa.com/html/454618.html'
title = '权力的游戏:第001期:restart'for page in range(0,1210):response = request.urlopen(url)html = response.read()html = html.decode("utf-8")rstr = r'(<p>.*?</p>)'s=re.findall(rstr,html,re.S)for i in range(len(s)):if s[i].startswith("<p>《权力的游戏》是一部"):s[i]=''if s[i].startswith("<p>背景介绍:"):s[i]='\n-----------------\n'if s[i].startswith("<p>来自"):s[i]=''#ct = '\n'.join(s)title=title.split(':')[2]print(title)#print(url)#print(ct)with open('d:/%s.txt'%title, 'w') as f:f.write("<h>%s</h>"%title)f.write("<p>%s</p>"%url)f.writelines(s)rstr = r'<div id="next"> 下一篇:<a href=\'(.*?)\'>(.*?)</a>'s=re.findall(rstr,html,re.S)if len(s) == 1:url,title = s[0]url='http://www.tingvoa.com'+urlelse:print(ct)brea
上述写文件部分,没有合并到一个文本文件中,而是每个单独一个文件,是因为网页发布不是完全有序的。以章节作文件名,全爬下来后,按文件名重排序并合并,就能得到有序的完整书内容了。
看爬下的结果:
再用工具把文件合并转换成 mobi . kindle就能慢慢看了。
转载请注明: 转自https://blog.csdn.net/fangkailove/article/details/90522662
这篇关于Python 爬虫:爬《权力的游戏》中英对照版的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!