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.net



from urllib import request
import re

url = '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'+url
    else:
        print(ct)
        brea

上述写文件部分,没有合并到一个文本文件中,而是每个单独一个文件,是因为网页发布不是完全有序的。以章节作文件名,全爬下来后,按文件名重排序并合并,就能得到有序的完整书内容了。

看爬下的结果:

再用工具把文件合并转换成 mobi . kindle就能慢慢看了。

转载请注明: 转自https://blog.csdn.net/fangkailove/article/details/90522662

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wxgnolux

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值