【发布时间】:2017-11-15 14:11:21
【问题描述】:
我正在尝试查找其中包含作者的所有元标记。如果我有一个特定的键和正则表达式值,它就可以工作。当两者都是正则表达式时它不起作用。是否可以提取页面上包含“作者”关键字的所有元标记? 这是我写的代码。
from bs4 import BeautifulSoup
page = requests.get(url)
contents = page.content
soup = BeautifulSoup(contents, 'lxml')
preys = soup.find_all("meta", attrs={re.compile('.*'): re.compile('author')})
编辑: 为了澄清起见,我要专门解决的问题是值“作者”是否映射到任何键。正如我在各种示例中看到的那样,该键可以是“itemprop”、“name”甚至“property”。基本上,我的问题是提取所有将作者作为值的元标记,无论该值具有什么键。 几个例子:
<meta content="Jami Miscik" name="citation_author"/>
<meta content="Will Ripley, Joshua Berlinger and Allison Brennan, CNN" itemprop="author"/>
<meta content="Alison Griswold" property="author"/>
【问题讨论】:
-
文档是否在某处建议属性名称可以是正则表达式?我在crummy.com/software/BeautifulSoup/bs4/doc/#attrs 下找不到任何提示
-
可能是这样。如果是这样,我将不得不收集所有潜在的键并检查它们的值。
标签: python regex beautifulsoup