家族のメンバーがポッドキャストをサイトからダウンロードするのを助ける小さなツールを作りたいと思います。beautifulsoupを使用して.mp3リンクをフィルタリングするにはどうすればよいでしょうか? (JSON)
ファイルへのリンクを取得するには、まずそれらをフィルタリングする必要があります(bs4 + python3を使用)。 ファイルは、このウェブサイト(エストニア)にある:Download Pageは「Laadiのアラは」=「ダウンロード」
これまでのところ、次のように私のコードがある:
from bs4 import BeautifulSoup
import urllib.request
import re
url = urllib.request.urlopen("http://vikerraadio.err.ee/listing/mystiline_venemaa#?page=1&pagesize=902&phrase=&from=&to=&path=mystiline_venemaa&showAll")
content = url.read()
soup = BeautifulSoup(content, "lxml")
links = [a['href'] for a in soup.find_all('a',href=re.compile('http.*\.mp3'))]
print ("Links:", links)
(そのほとんどはstackoverflowの上の例からです)
残念ながら私は常に2つの結果しか得ていません。 出力:
Links: ['http://heli.err.ee/helid/exp/ERR_raadiouudised.mp3', 'http://heli.err.ee/helid/exp/ERR_raadiouudised.mp3']
これらは私が望むものではありません。 私の最高の推測では、ページに多少のHTMLの壊れがあり、bs4 /パーサーは他のものを見つけることができないということです。 違うパーサーを試してみましたが、結果は変わりません。 多分私は別の何かを間違ってやっている。
私の目標は、例えばリスト内に個々のリンクを置くことです。 私は、後で自分で重複した/不要な項目を除外します。
これは公共ラジオであり、すべてのコンテンツは合法的にホストされています。
私の新しいコードは次のとおりです。
for link in soup.find_all('d2p1:DownloadUrl'):
print(link.text)
タグが正しく選択されている場合、私は非常にわからないと思います。
に記載されている例はありません。は実際に動作しています。作業コードについては、以下の回答を参照してください。
ページはJavaScriptでレンダリングされています。JavaScriptでレンダリングされたWebページをスクラップする方法の詳細については、https://stackoverflow.com/questions/45259232/scraping-google-finance-beautifulsoup/45259523#45259523への私の回答を参照してください。 –