Python-从直接链接下载图像(禁止,您无权访问此服务器)

Python-从直接链接下载图像(禁止,您无权访问此服务器),python,image,cookies,Python,Image,Cookies,我需要通过Python下载一个图像(不能发布url,因为我认为这里不允许使用内容类型) 图像加载到页面中,因此我首先使用BeautifulSoup从页面源代码获取图像直接url,然后尝试使用以下工具下载: import urllib2 urllib2.urlretrieve(image, folder) 它通常工作正常,但在这个服务器上不工作 如果我在浏览器中打开带有图像的页面,然后在另一个浏览器窗口中复制图像直接链接并打开它,我将获得图像,但如果我尝试在另一个窗口中直接打开图像而不首先打开图

我需要通过Python下载一个图像(不能发布url,因为我认为这里不允许使用内容类型)

图像加载到页面中,因此我首先使用BeautifulSoup从页面源代码获取图像直接url,然后尝试使用以下工具下载:

import urllib2
urllib2.urlretrieve(image, folder)
它通常工作正常,但在这个服务器上不工作

如果我在浏览器中打开带有图像的页面,然后在另一个浏览器窗口中复制图像直接链接并打开它,我将获得图像,但如果我尝试在另一个窗口中直接打开图像而不首先打开图像所在的网页,我将获得错误403:

禁止您没有访问此服务器上/1.jpg的权限

如果关闭浏览器并重新打开图像,则直接打开图像仍然有效,但如果更改浏览器,则再次出现错误403

我想这可能是曲奇发布的东西,所以我尝试:

response = urllib2.urlopen(PAGE_WITH_IMAGE)
cookie = response.headers.get('Set-Cookie')
req2 = urllib2.Request(DIRECT_LINK_TO_IMAGE)
req2.add_header('cookie', cookie)
urllib2.urlretrieve(req2, folder)

但我仍然收到错误403。

听起来服务器有某种直接下载保护。但这只是猜测,因为你没有说它是哪台服务器。有用户登录吗?没有。我可以直接访问图像,但前提是我至少打开了一次图像所在的页面(比如,如果是首先请求图像的页面,那么我甚至可以通过直接链接访问它)。服务器是成人内容,我想我不能发布链接。有没有什么测试可以帮上忙?也许可以尝试分配一个requests.session()并使用同一个session对象来获取这两个链接?根据您所寻找的质量,您可以使用selenium webdriver进行屏幕截图。