Настоящий веб-браузер отправляет много разных значений в заголовках - не только User-Agent
.
Многие серверы проверяют только User-Agent
для отправки правильного HTML для настольного компьютера или мобильного устройства. Но некоторые серверы могут проверять другие заголовки.
Этой странице нужен заголовок Accept
, но код работает даже без User-Agent
import requests
headers = {
# 'User-Agent': 'Mozilla/5.0',
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
# "Accept-Encoding": "gzip, deflate, br"
# "Accept-Language": "en-US;q=0.7,en;q=0.3"
# ... other headers ...
}
url = 'https://www.ubereats.com/ann-arbor/food-delivery/chipotle-mexican-grill-3354-washtenaw-ave-ste-a/zbEbQIdWT2-n6iTWqjz55Q'
page = requests.get(url, headers=headers)
print(page.status_code)
print(page.text)
#print(page.content)
Вы можете использовать DevTools
в Firefox / Chrome (вкладка Network
), чтобы увидеть все повторные запросы от браузера к серверу и все заголовки / данные, отправленные на сервер. А затем вы можете скопировать заголовки и протестировать в своем коде.