После тщательного поиска и множества вариаций я в растерянности. Я знаю, что BS4 (я также пробовал 3) должен иметь возможность очищать метатеги, но я не могу заставить его работать. Рассматриваемые мета-теги закрыты <properly />
, так что это не так. Они всегда есть (хотя я и поставил ловушку на случай), так что это не так. Я пробовал петли, пробовал разные форматы для одного и того же. Я даже пробовал Newspaper и Newspaper3k. Наконец, я попробовал библиотеки l xml, html5lib и html .parser, но все безрезультатно.
Любой совет поможет ... пожалуйста.
My HTML исходный код выглядит так:
<meta name="description" content="Here is an exclusive we just got in regarding toda...." />
<meta property="og:description" content="Here is an exclusive we just got in regarding toda...." />
<meta property="article:section" content="Breaking News" />
а мой python код выглядит так:
# Import requisite libraries
from bs4 import BeautifulSoup
# Start it up (and note I have also tried lxml and html.parser)
soup = BeautifulSoup(corpus, 'html5lib')
# corpus is holding data from Newspaper3k. This aspect works.
# Following is just me trying different ways to find the same 2 things:
# Retrieve description AKA summary
description = soup.find("meta", property="og:description") # 1st way
summary = soup.find("meta", attrs={'name': "description"}) # 2nd way
# Retrieve category AKA section
category = soup.find("meta", property='article:section') # 1st way
section = soup.find("meta", attrs={'article': "section"}) # 2nd way
# Test and return result
print(description["content"] if description else "No description given")
print(summary["content"] if summary else "No summary given")
print(category["content"] if category else "No category given")
print(section["content"] if section else "No section given")