我正在尝试编写一个Python解析器,以从html页中提取一些信息。
它应该从<p itemprop="xxx">
和之间提取文本</p>
我使用正则表达式:
m = re.search(ur'p>(?P<text>[^<]*)</p>', html)
但是如果它们之间是另一个标签,则无法解析文件。例如:
<p itemprop="xxx"> some text <br/> another text </p>
据我了解[^<]
,只有一个符号是例外。如何写“除</p>
”以外的所有内容?
您可以使用:
m = re.search(ur'p>(?P<text>.*?)</p>', html)
这是一个懒惰的匹配,它将匹配所有内容,直到为止</p>
。您还应该考虑使用类似BeautifulSoup的HTML解析器,该解析器在安装后可以与CSS选择器一起使用,如下所示:
from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
m = soup.select('p[itemprop="xxx"]')
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句