Python 10行のコード一括ダウンロードBaidu翻訳音声

序文

百度翻訳を利用する際にこのような疑問を感じる人も多いと思いますが、下の画像の単語のふりがなをダウンロードするにはどうすればよいので、今日は音声を一括ダウンロードする方法を教えます。

ここに画像の説明を挿入

一連の考え

まず、私たちの動作は Web ページを閲覧し、音声ボタンをクリックして生成された音声を取得します。その後、音声は http 経由で送信する必要があり、ネットワーク送信を確認するだけです。ページの空白部分を右クリックし、「検査」(通常はメニューの一番下)を選択して、Webページ要素のコンソールを開き、ネットワークを選択して、音声再生ボタンをクリックし、クリックして並べ替えましょう。タイプ別にメディアを検索すると、取得したリソースが表示されます。
ここに画像の説明を挿入
次に、getts の 1 つを選択し、右クリックして次のようにリンク アドレスをコピーします:
https://fanyi.baidu.com/gettts?lan=en&text=come% 20on&spd=3&source=web分析により、lan はイギリス英語とアメリカ英語を制御し、text は入力したテキスト、%20 はテキスト内のスペース、spd は音声の生成速度、source はソースを意味すること
がわかります。




次に、リンクをアドレス バーにコピーすると、音声の MP3 が自動的にダウンロードされることがわかります。つまり、入力したテキストを置き換えたり、少し詳細を追加したりするだけで、バッチでダウンロードできます。

コード

以下は、テキストを 1 行ずつ txt から読み取り、速度と音声タイプを設定するコードを実装する簡単な方法です。その後、ファイルはテキスト名 + .mp3 の形式で同じディレクトリに保存されます。

import urllib.request
import re
with open('test.txt') as file:
    list_url = [line.rstrip() for line in file]
spd = '2' #default is 3 数字越小越慢
lan = 'uk' #uk or en uk英音 en美音
for i in list_url:
    text = re.sub("\s+", "%20", i.strip())
    print(text)
    urllib.request.urlretrieve("https://fanyi.baidu.com/gettts?lan="+lan+"&text="+text+"&spd="+spd+"&source=web",i+".mp3")

たとえば、ここではテスト テキスト test.txt を用意しました。
ここに画像の説明を挿入
上記のコードをコピーして xxx.py に保存し、コマンド ラインで python xxx.py を実行すると、次の結果が生成されます
ここに画像の説明を挿入
。短期間によりブロックされた IP が応答しなくなる可能性があります。言うまでもなく、スリープ ステートメントを追加して実行速度を軽減したり、ユーザー ヘッダーを追加してブラウザの動作をシミュレートしたりすることは、クローラーの簡単なスキルです。

おすすめ

転載: blog.csdn.net/weixin_43945848/article/details/129852265