使用正则表达式将属性解析的值与beauthulsoup匹配

2024-05-20 01:06:50 发布

您现在位置:Python中文网/ 问答频道 /正文

来自丛林的嗨

我在分析一个论坛。更具体地说,线程的名称。在

这些线程由论坛引擎(vbulletin)提供,如下所示

<a href="http://www.example.com/showthread.php?t=555555" id="thread_title_555555">NAME OF THE TITLE</a>

使用python和beautifulsoup,我在其他领域也取得了成功。但是,我不能使用regex解析“id”属性。我需要解析器的这些行找到每个具有六位数id的“a”元素并从中获取文本

像这样的东西

^{pr2}$

或者在pseudopython中:

for elements in soup.finAll("a", {"id": "thread_title_".*}):
    print element.text

我试了几十种变体,都没有用。我能做什么?在

提前谢谢


Tags: 引擎名称comidhttptitleexamplewww
2条回答

您可以在调用findAll()时将id与regex匹配。。。在

for element in soup.findAll("a", id=re.compile("^thread_title_")):
    print element.text

\D*(\d{6})

这不符合你的要求吗?如果没有,你还试过什么?在

EDITED:如果线程标题可以包含上面不匹配的数字,那么考虑使用regex \w*(\d{6})

区别在于\D匹配所有非数字,而{}匹配任何字母、数字或下划线。在

相关问题 更多 >