Pythonのお勉強 Part54 at TECH
[2ch|▼Menu]
466:デフォルトの名無しさん
17/11/05 15:48:30.04 tWAi3wrN.net
>>454
urllib.request.urlretrieveでリクエストヘッダーを指定する方法は分からなかったけど、
公式ドキュメントに書いてあるようにリクエストオブジェクトでリクエストヘッダーを指定する方法でできた
試したサイトはUser-Agentを指定しないと403になるサイト(たまたま見つけた)
これでダメならRefererも指定してみてはどうでしょうか
>>> import urllib.request
>>> def my_urlretrieve(req):
with urllib.request.urlopen(req) as r:
print(f'statu code: {r.getcode()}')
with open(req.full_url.split('/')[-1], 'wb') as f:
f.write(r.read())
>>> url = 'Hな何かのサイトの画像URL.jpg'
>>> headers = {} #リクエストヘッダー未指定でやってみる
>>> req = urllib.request.Request(url=url, headers=headers) #リクエストオブジェクト作成
>>>
>>> my_urlretrieve(req) #作成したリクエストオブジェクトでアクセス → エラー403
(エラーが長すぎて書き込みないから省略)
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden
>>>
>>> headers = {'User-Agent': 'Mozilla/5.0'} #リクエストヘッダーにUser-Agentを適当に指定
>>> req = urllib.request.Request(url=url, headers=headers) #リクエストオブジェクト作成
>>>
>>> my_urlretrieve(req) #作成したリクエストオブジェクトでアクセス&保存
statu code: 200
>>>


次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

2224日前に更新/231 KB
担当:undef