Заголовок запроса User-Agent содержит характеристическую строку, которая позволяет одноранговым сетевым протоколам идентифицировать тип приложения, операционную систему, поставщика программного обеспечения или версию программного обеспечения запрашивающего программного агента пользователя. Проверка заголовка User-Agent на стороне сервера - обычная операция, поэтому обязательно используйте строку User-Agent в браузере, чтобы избежать блокировки.
(Источник: http://go -colly.org / Articles / scraping_related_http_headers / )
Единственное, что вам нужно сделать, это установить законного агента пользователя. Поэтому добавьте заголовки в , эмулируйте браузер . :
# This is a standard user-agent of Chrome browser running on Windows 10
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'
}
Пример:
from bs4 import BeautifulSoup
import requests
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}
resp = requests.get('http://example.com', headers=headers).text
soup = BeautifulSoup(resp, 'html.parser')
Кроме того, вы можете добавить еще один набор заголовков, чтобы выглядеть как законный браузер. Добавьте еще несколько заголовков, как это:
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',
'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language' : 'en-US,en;q=0.5',
'Accept-Encoding' : 'gzip',
'DNT' : '1', # Do Not Track Request Header
'Connection' : 'close'
}