1

ファイルを取得しようとしている Web サイトには Cookie が必要ですが、FancyURLopener の使用中に Cookie 処理を追加する方法がわかりません。

これが私のコードの一部です:

user_agents = [
    'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11',
    'Opera/9.25 (Windows NT 5.1; U; en)',
]
site_file = "somesite.com/pic.jpeg"
class MyOpener(FancyURLopener, object):
    version = choice(user_agents)
myopener = MyOpener()
myopener.retrieve(site_file, "pic.jpeg")

私もこのようなものを使ってみましたが、この方法で実際にファイルを取得する方法がわかりませんでした.

cj = http.cookiejar.CookieJar()
request = urllib.request.Request(site)
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
request.add_header('User-agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0')

ありがとうございました

4

1 に答える 1

1

次を使用してファイルを取得できます。

import shutil
from contextlib import closing

with closing(opener.open(request)) as src, open(filename, "wb") as dest:
    shutil.copyfileobj(src, dest)
于 2013-01-10T00:43:06.597 に答える