2017-10-03 4 views
1

URLからダウンロードしているファイルがあります。URLからファイルをダウンロードする際のアウトパスを指定してください

私は現在、このように私のファイルにアクセスすることができます

import requests 
from bs4 import BeautifulSoup 
import os 

prefix = 'https://n5eil01u.ecs.nsidc.org/MOST/MOD10A1.006/' 
download_url = "https:/path_to_website" 

s = requests.session()               
soup = BeautifulSoup(s.get(download_url).text, "lxml") 

for a in soup.find_all('a', href=True): 

    final_link = os.path.join(prefix, a['href']) 
    result = s.get(final_link, stream = True) 
    with open(a['href'], 'wb') as out_file: 
      shutil.copyfileobj(result.raw, out_file) 

これは細かいファイルをダウンロードし、Cのデフォルトのディレクトリにそれを置くでしょう:/ユーザー。

私はどこからファイルをダウンロードするかを選択したいと思います。あなたはアウトパスがwgetである場所を選ぶことができますが、私の方法では空のファイルがアクセスされていないかのようにダウンロードされます。

私はこのようなwgetでこれを試してみました:私は、認証(図示せず)と、ウェブサイトにアクセスしていますので、wgetコマンドが動作していないされていない、と私は最終的なリンクに参加するとき、私はもはやと思う

out_path = "C:/my_path" 
prefix = 'https://n5eil01u.ecs.nsidc.org/MOST/MOD10A1.006/' 

s = requests.session()               
soup = BeautifulSoup(s.get(download_url).text, "lxml") 

for a in page.find_all('a', href=True): 

    final_link = os.path.join(prefix, a['href']) 
    download = wget.download(final_link, out = out_path) 

認証でアクセスします。シャットルでoutpathを指定する方法はありますか?

答えて

1

ファイルのパスをos.path.join(out_path, a['href'])で置き換えて、最初の方法を使用するとどうなりますか?あなたは以下のようなターゲットパスを作成することができます

import requests 
from bs4 import BeautifulSoup 
import os 

out_path = "C:\\my_path"  
prefix = 'https://n5eil01u.ecs.nsidc.org/MOST/MOD10A1.006/' 
download_url = "https:/path_to_website" 

s = requests.session()               
soup = BeautifulSoup(s.get(download_url).text, "lxml") 

for a in soup.find_all('a', href=True): 
    final_link = os.path.join(prefix, a['href']) 
    result = s.get(final_link, stream = True) 
    new_file_path = os.path.join(out_path, a['href']) 
    with open(new_file_path, 'wb') as out_file: # this will create the new file at new_file_path 
      shutil.copyfileobj(result.raw, out_file) 
+0

ああ、私は参照してください。ありがとうございました。 –

0

target_path = r'c:\windows\temp' 
with open(os.path.join(target_path, a['href']), 'wb') as out_file: 
    shutil.copyfileobj(result.raw, out_file) 
関連する問題