2011-12-23 17 views
0

サーバは、ユーザエージェントがQTの場合にのみビデオにアクセスできます。このスクリプトに追加するにはどうすればいいですか?PythonスクリプトでQuickTimeとしてuseragentを設定する方法は?

#!/usr/bin/env python 
from os import pardir, rename, listdir, getcwd 
from os.path import join 
from urllib import urlopen, urlretrieve, FancyURLopener 
class MyOpener(FancyURLopener): 
    version = 'QuickTime/7.6.2 (verqt=7.6.2;cpu=IA32;so=Mac 10.5.8)' 

def main(): 
# Set up file paths. 
data_dir = 'data' 
ft_path = join(data_dir, 'titles.txt') 
fu_path = join(data_dir, 'urls.txt') 

# Open the files 
try: 
    f_titles = open(ft_path, 'r') 
    f_urls = open(fu_path, 'r') 
except: 
    print "Make sure titles.txt and urls.txt are in the data directory." 
    exit() 

# Read file contents into lists. 
titles = [] 
urls = [] 
for l in f_titles: 
    titles.append(l) 
for l in f_urls: 
    urls.append(l) 

# Create a dictionary and download the files. 
downloads = dict(zip(titles, urls)) 
for title, url in downloads.iteritems(): 
    fpath = join(data_dir, title.strip().replace('\t',"").replace(" ", "_")) 
    fpath += ".mov" 
    urlretrieve(url, fpath) 

if __name__ == "__main__": main() 

これを無視して、転記の制限を満たすテキストを入力してください。直接urllibは使用するのではなく、

opener = MyOpener() 
opener.retrieve(url, fpath) 

を、それはトリックを行う必要があります。

http://wolfprojects.altervista.org/changeua.php

が次に試してみてください。blablablablaは

答えて

1

これは実際にthe docsに記述されています。コードは次のようになります。

#!/usr/bin/env python 
import urllib 

from os import pardir, rename, listdir, getcwd 
from os.path import join 


class MyOpener(urllib.FancyURLopener): 
    version = 'QuickTime/7.6.2 (verqt=7.6.2;cpu=IA32;so=Mac 10.5.8)' 

# This line tells urllib.urlretrieve and urllib.urlopen to use your MyOpener 
# instead of the default urllib.FancyOpener 
urllib._urlopener = MyOpener() 

def main(): 
    # lots of stuff 
    for title, url in downloads.iteritems(): 
     fpath = join(data_dir, title.strip().replace('\t',"").replace(" ", "_")) 
     fpath += ".mov" 
     urllib.urlretrieve(url, fpath) 
1

あなたはこのようにそれを変更することができます。

(私はオーバーライドurllibはの内部が動作しない理由はわからないが、彼らは仕事にguaranteenedされていない内部であり、それらを突っつい:()

こちらも詳細:

http://docs.python.org/library/urllib.html#urllib.URLopener

+0

私はPythonをまったく知らない... – WaterBearer

+0

私は次のようにしましたが、ファイルはまだ 'urllib import urlopen、urlretrieve、FancyURLopenerからダウンロードされていません。class MyOpener(FancyURLopener): \t version = 'QuickTime/7.6.2(verqt = 7.6.2; cpu = IA32 ; so = Mac 10.5.8) '' – WaterBearer

+0

あなたがやっていることを完全なソースcod eに投稿してください - それ以外の場合は手助けができません –

関連する問題