爬虫——抓取播客翻译

Posted noonjuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫——抓取播客翻译相关的知识,希望对你有一定的参考价值。

抓取播客翻译

#!/usr/bin/env python
#!encoding: UTF-8
# get_transcript.py

"""
一个自动从https://podcast.duolingo.com/spanish中下载transcripts的程序
"""

# requests.encoding 编码
# requests.status_code 状态码
#     200 成功
#    4xx 客户端错误 -> 404 Page Not Found
#    5xx 服务器错误

import requests
import re
import os

main = https://podcast.duolingo.com/spanish  # 主页面
headers = 
    User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/70.0.3538.77 Safari/537.36,


for i in range(1, 10):  # 遍历所有页面
    if i == 1:  # 第一页即主页面
        page = main
    else:  # ‘https://podcast.duolingo.com/spanish2‘ 以此类推
        page = main + str(i)
    r = requests.get(page, headers=headers)
    print(page with status code status..format(page=page, status=r.status_code)) 

    if r.status_code == 404:  # 如果找不到更多的页面,跳出
        print(404 Page Not Found!)
        break

    hrefs = re.findall(entry-title">\\s*<a href="(.*)" rel, r.text)  # 获取页面所有节目链接

    for h in hrefs:
        title = h[2:]
        episode = main[:-7] + title  # 节目链接
        filename = transcript/ + title + .txt
        if os.path.exists(filename):
            print(filename, existed!)
            continue
        req = requests.get(episode, headers=headers)
        print(episode with status code status..format(episode=episode, status=req.status_code))
        if not os.path.exists(transcript):
            os.mkdir(transcript)
        with open(filename, w+) as fp:
            for lines in re.findall(strong>(.*)</strong>(.*)</p>, req.text):
                for line in lines:
                    fp.write(line)
                fp.write(\\n\\n)
            print(filename, added!)

 

结果:  

技术图片

 

技术图片

 

以上是关于爬虫——抓取播客翻译的主要内容,如果未能解决你的问题,请参考以下文章

2017传智播客python基础班+就业班

Ruby:SQLite3::BusyException:数据库被锁定:

如何入驻苹果播客

apple播客上传需要年费?

Luminary在Apple播客上推出新订阅频道

用于刷新单个 iTunes 播客的 Applescript 代码