通过Selenium Python在身份验证后下载图像
我正在抓取一个网页,这个网页需要你登录才能看到图片和其他附件。我在我的脚本中其他部分都已经做好了,但我就是不知道在用Selenium登录用户后,怎么下载这些图片。
这里有一个要下载的图片的例子在这里。有什么好主意吗?
1 个回答
0
用Selenium下载文件是可以的,但需要先改一下浏览器的默认设置。你可以查看这个链接了解详细步骤:如何使用Selenium的WebDriver下载文件。不过,有时候用一个客户端库,比如requests
,会更简单一些,前提是你已经通过Selenium登录了。你可以通过在你的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使用的用户代理,可以查看这个链接:通过webdriver在Selenium中传递用户代理。