尝试在 1cak 下载图像时出现禁止网关。com/shuffle

Get forbidden gateway when trying to download an image at 1cak.com/shuffle

我正在尝试制作一个从 this 网站下载图片的机器人

from bs4 import BeautifulSoup as bs
from requests import get

wan = get('http://1cak.com/shuffle')
soup = bs(get(wan.url).content, 'html.parser')
url = soup.img.get('src')
wan = get(url)
print(wan.content)

但它给了我这个

<html>\r\n<head><title>403 Forbidden</title></head>\r\n<body bgcolor="white">\r\n<center><h1>403 Forbidden</h1></center>\r\n<hr><center>nginx/1.12.1</center>\r\n</body>\r\n</html>\r\n

要获取图像,请指定 Referer HTTP header:

from bs4 import BeautifulSoup as bs
from requests import get

soup = bs(get('http://1cak.com/shuffle').content, 'html.parser')
url = soup.img.get('src')
wan = get(url, headers={'Referer': url}, verify=False)
print(wan.content)

打印警告(因为您关闭了 SSL 验证)和图像内容:

b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x01\x00\x01\x00\x01\x00\x00\xff\xdb\x00C\x00\n\x07\x07\x08\x07\x06\n\x08\x08\x08\x0b\n\n\x0b\x0e\x18\x10\x0e\r\r\x0e\x1d\x15\x16\x11\x18#\x1f%$"\x1f"!&+7/&)4)!"0A149;>>>%.DIC<H7=>;\xff\xdb\x00C\x01\n\x0b\x0b\x0e\r\x0e\x1c\x10\x10\x1c;("(;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\xff\xc0\x00\x11\x08\x08#\x01\xbc\x03\x01"\x00\x02\x11\x01\x03\x11\x01\xff\xc4\x00\x1f\x00\x00\x01\x05\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\xff\xc4\x00\xb5\x10\x00\x02\x01\x03\x03\x02\x04\x03\x05\x05\x04\x04\x00\x00\x01}\x01\x02\x03\x00\x04\x11\x05\x12!1A\x06\x13Qa\x07"q\x142\x81\x91\xa1\x08#B\xb1\xc1\x15R\xd1\xf0br\x82\t\n\x16\x17\x18\x19\x1a%&\'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz\x83\x84\x85\x86\x87\x88\x89\x8a\x

...