Я хочу, чтобы содержимое находилось в ключе данных на страницах элемента [1], как показано ниже: https://www.banque-france.fr/en/ajax/pagination/news/communique-de-presse?selector=bdf-page-list-news-form&page=1
Теперь открывается первый раз выше (или попробуйте в частный браузер) он не будет отображаться в разделе данных. Сохраняя указанную ссылку открытой на отдельной вкладке, и если следующую страницу посещают на отдельной вкладке: https://www.banque-france.fr/en/news/communique-de-presse
Затем на исходную вкладку отправляется ссылка sh, гораздо больше видно в разделе данных.
Это подтверждает, что для первой страницы, страницы, которую я должен sh очистить, требуется аутентификация cook ie. URL-адрес страницы был взят из запроса AJAX, который можно увидеть на вкладке «Проверка сети» при переключении номеров страниц в пределах https://www.banque-france.fr/en/news/communique-de-presse
Для решения проблемы сначала требуя аутентификации на основе cook ie, я сначала захожу на https://www.banque-france.fr/en/news/communique-de-presse с использованием веб-драйвера Selenium, чтобы получить cook ie и идентификатор сеанса, перед отправкой с python запросами POST. К сожалению, однако, даже несмотря на то, что заголовки запроса во всех отношениях выглядят так же, как и в браузере, время отправки запроса истекает. Обратите внимание, что для запуска кода требуется веб-драйвер Selenium
from selenium import webdriver
import requests
import logging
logging.basicConfig()
logger = logging.getLogger()
logger.setLevel( logging.DEBUG)
browser = webdriver.Chrome( *<path to webdriver>* )
home_url = "https://www.banque-france.fr/en/news/communique-de-presse"
browser.get( home_url)
cookies = browser.get_cookies()
ajax_url = "https://www.banque-france.fr/en/ajax/pagination/news/communique-de-presse?selector=bdf-page-list-news-form&page=1"
session = f"{ cookies[2].get( 'name')}={ cookies[2].get( 'value')}"
hasJs = f"{ cookies[1].get( 'name')}={ cookies[1].get( 'value')}"
atIdVisitor = f"{ cookies[ 0].get( 'name')}={ cookies[0].get( 'value')}"
cookieString = f"{ hasJs}; { atIdVisitor}; { session}"
logger.debug( f"{ cookieString=}")
headers = {
"Accept": "application/json, text/javascript, */*; q=0.01",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "en-GB,en;q=0.5",
"Connection": "keep-alive",
"Content-Length": "22523",
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
"Cookie": cookieString,
"Host": "www.banque-france.fr",
"Origin": "https://www.banque-france.fr",
"Referer": "https://www.banque-france.fr/en/news/communique-de-presse",
"TE": "Trailers",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36",
"X-Requested-With": "XMLHttpRequest"
}
response = requests.post(
"https://www.banque-france.fr/en/ajax/pagination/news/communique-de-presse?selector=bdf-page-list-news-form&page=1",
headers=headers
)
logger.debug( f'{ response=}')