通过selenium python在auth之后下载图像

时间:2014-07-13 17:14:13

标签: python http selenium

我在抓webpage 这需要您登录才能看到图像和其他附件。我的其他所有内容都在我的脚本中工作,但是在用Selenium登录用户之后我无法找到下载图像的方法。

要下载的图片示例here。 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

通过修改浏览器的默认行为,可以使用Selenium下载文件。见How to download a file using Selenium's WebDriver。但是,在通过Selenium进行身份验证后,更直接的方法可能是使用客户端库,例如requests。您可以通过调用webdriver实例上的get_cookie(name)来访问与会话相关的Cookie值。然后,您可以将这些值传递给requests

import requests

...<selenium procedures>...

# URL for attachment
url = 'http://www.examplesite.tld/forum/attachment.php?attachmentid=87690&stc=1&d=1401977404'

# Obtain session id from Selenium cookies
cookies = {
    'sessionhash': webdriver_instance.get_cookie('sessionhash'),
}

# User agent must match user agent used to create session
headers = {
    'User-Agent': <UA used by Selenium>,
}

response = requests.get(url, cookies=cookies, headers=headers)
attachment = response.content

如果您需要更改Selenium使用的用户代理,请参阅Pass the user-agent through webdriver in Selenium