通过Selenium Python在身份验证后下载图像

0 投票
1 回答
1443 浏览
提问于 2025-04-18 13:09

我正在抓取一个网页,这个网页需要你登录才能看到图片和其他附件。我在我的脚本中其他部分都已经做好了,但我就是不知道在用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中传递用户代理

撰写回答