如何使用BeautifulSoup中应用的正则表达式从<p>标签获取文本?

时间:2018-04-19 10:25:32

标签: python regex web-scraping beautifulsoup

我在python中使用regex编写了一些脚本来从某些p标签中获取文本,但是脚本却给了我空列表。

这是html elements

的磁性部分
   <div class="result__links">
        <p class="result__outcome u-hide-phablet">Kolkata Knight Riders won by 7 wickets</p>
        <p class="result__info u-hide-phablet">
            Match 15, 20:00 IST (14:30 GMT), Sawai Mansingh Stadium, Jaipur
        </p>
        <a class="result__button result__button--mc btn" href="/match/2018/15?tab=scorecard">Match Centre</a>
    </div>

如何获取以下类中包含的p标记文本?

classs='result__info u-hide-phablet'

目的是使用regex获取上述标记的文本。

这是我到目前为止所尝试的:

winner = soup.find_all('p',class_="result__outcome u-hide-phablet") 
win_list = re.findall(r'>(.*?)</p>', str(winner)) 

以上部分产生空列表。对此的任何帮助将受到高度赞赏。

发布脚本:我正在寻找与regex相关的任何解决方案。

1 个答案:

答案 0 :(得分:1)

要访问您感兴趣的标签,您可以这样做:

for p in soup.findAll("p", {"class" : "result__outcome u-hide-phablet"}):
    tags_text = p.text

您需要做同样的跨度:

for span in soup.findAll("span", {"class" : "result__score result__score--winner"}):
        tags_text = span.text

就像你在问题中提到的那样,获取每个标签中的文字。