.xls
または.xlsx
または.csv
をすべてこのWebサイトから指定のフォルダにダウンロードします。PythonとBeautifulSoupを使ってWebページから.xlsファイルをダウンロード
https://www.rbi.org.in/Scripts/bs_viewcontent.aspx?Id=2009
私はurllib2のなどMechanizeのは、Python 3では動作しませんMechanizeの、美しいスープの中に見ている、urllib2のもPythonの3で問題を抱えていた、私はこの問題を回避するために見えたが、私はできませんでした。だから、私は現在、美しいスープを使って動作させようとしています。
私はいくつかのサンプルコードを見つけ、次のように、私の問題に合わせて、それを修正しようとした -
from bs4 import BeautifulSoup
# Python 3.x
from urllib.request import urlopen, urlretrieve, quote
from urllib.parse import urljoin
url = 'https://www.rbi.org.in/Scripts/bs_viewcontent.aspx?Id=2009/'
u = urlopen(url)
try:
html = u.read().decode('utf-8')
finally:
u.close()
soup = BeautifulSoup(html)
for link in soup.select('div[webpartid] a'):
href = link.get('href')
if href.startswith('javascript:'):
continue
filename = href.rsplit('/', 1)[-1]
href = urljoin(url, quote(href))
try:
urlretrieve(href, filename)
except:
print('failed to download')
しかし、実行時にこのコードは、ターゲット・ページ、また出力、エラーメッセージからファイルを抽出しません。 (例えば、「ダウンロードに失敗しました」など)。
- BeautifulSoupを使用してページからExcelファイルを選択するにはどうすればよいですか?
- これらのファイルをPythonを使用してローカルファイルにダウンロードするにはどうすればよいですか?それはスタンドとしてあなたのスクリプトで
あなたのコードがどのように "うまくいかなかった"と記述できますか?投稿されたコードは間違ってインデントされているため、まったく実行されません。 – mfitzp
コードはたまに実行されましたが、決してファイルを作成しませんでした。インデントについては、私はポストしながら私はそれを甘やかす必要がありますが、コードを実行したときに私はインデントを世話したことを安心しなければならないことを謝ります –
私はこの問題のために働く解決策を持っています。私はそれを要点としてここに掲載しています。https://gist.github.com/mfitzp/29522e2ac4057bf01745 – mfitzp