我在抓webpage 这需要您登录才能看到图像和其他附件。我的其他所有内容都在我的脚本中工作,但是在用Selenium登录用户之后我无法找到下载图像的方法。
要下载的图片示例here。 有什么想法吗?
答案 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。