Разные порталы могут иметь разные системы безопасности для блокировки скриптов / ботов.
Когда вы откроете image3.jpg
в текстовом редакторе, вы увидите
<head>
<title>Not Acceptable!</title>
</head>
<body>
<h1>Not Acceptable!</h1>
<p>An appropriate representation of the requested resource could not be found on this server.
This error was generated by Mod_Security.</p>
</body>
</html>
Некоторым серверам могут потребоваться правильные headerse
, cookies
, session-id
и т. Д. Для предоставления доступа к данным.
Этому порталу нужен правильный заголовок user-agent
import requests
url = 'https://ryanspressurewashing.com/wp-content/uploads/2017/06/metal-roof-after-pressure-washing.jpg'
headers = {
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0'
}
r = requests.get(url, stream=True, headers=headers)
with open('image3.jpg', 'wb') as my_file:
# Read by 4KB chunks
for byte_chunk in r.iter_content(chunk_size=4096):
my_file.write(byte_chunk)
requests
по умолчанию использует user-agent: python-requests/2.21.0
, чтобы порталы могли легко распознать сценарий и заблокировать его.
Вы можете увидеть этот заголовок, используя https://httpbin.org/get
import requests
r = requests.get('https://httpbin.org/get')
print(r.text)
Результат:
{
"args": {},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.21.0"
},
"origin": "83.23.39.165, 83.23.39.165",
"url": "https://httpbin.org/get"
}
См. Больше функций на httpbin.org