Как прочитать содержимое заголовка веб-страницы в Django?

Я создал поисковую систему на Django и bs4, которая берет результаты поиска с поисковой системы Ask.com. Я хотел бы, чтобы при получении результатов поиска от Ask, Django проверял значение заголовка X-Frame-Options или если CSP_FRAME_ANCESTORS имеет значения ​​"'self'", '*' в случае, если заголовок существует, чтобы дать значение моему булеву notAccept в зависимости от результата условия.

Я вдохновился этой страницей документации Django, а также этой другой страницей, чтобы написать следующий код:

for page_num in range(1, max_pages_to_scrap+1):
            url = "https://www.ask.com/web?q=" + search + "&qo=pagination&page=" + str(page_num)
            res = requests.get(url)
            soup = bs(res.text, 'lxml')
            result_listings = soup.find_all('div', {'class': 'PartialSearchResults-item'})

            for result in result_listings:
                result_title = result.find(class_='PartialSearchResults-item-title').text
                result_url = result.find('a').get('href')
                result_desc = result.find(class_='PartialSearchResults-item-abstract').text
                final_result.append((result_title, result_url, result_desc))

            for header in final_result[1]:
                if(header.CONTENT_TYPE.X-Frame-Options == "DENY" | header.CONTENT_TYPE.X-Frame-Options == "SAMEORIGIN" | !(CSP_FRAME_ANCESTORS == ("'self'", '*'))): #The error is generated on this line
                     head = True
                     notAccept = bool(head)
                else:
                    notAccept = bool(False)

Однако, это дает мне следующие ошибки в командной строке моей IDE:

"(" was not closed
Expected expression
Expected ":"
<
"Frame" is not defined
"Options" is not defined
"CSP_FRAME_ANCESTORS" is not defined

Как будто Django не рассматривает их как заголовки. Все, что я хочу, это иметь возможность читать содержимое заголовка каждой возвращаемой веб-страницы. Поэтому я надеюсь рассчитывать на помощь сообщества, спасибо!

Это скорее проблема Python Requests, чем Django. Из моих ограниченных знаний я не верю, что вы можете получить информацию о заголовках страниц, просто просматривая ссылки. Вам нужно фактически послать GET запрос, потому что он находится в заголовке запроса:

for l in links:
    response = requests.get(l)
    if response['X-Frame-Options'] in ["DENY", "SAMEORIGIN"]:
        head = True
        notAccept = bool(head)
    else:
        notAccept = bool(False)

Я не смог найти ничего о CSP_FRAME_ANCESTORS то...

Надеемся, что вы сможете найти что-то из этого полезным. По крайней мере, теперь вы знаете, что искать python requests {x} по теме

Вернуться на верх