首页 > 解决方案 > 如何将 BeautifulSoup HREF 搜索从扩展

问题描述

标签: pythonhtmlregexbeautifulsouphref

解决方案


要获取所有href内容,/game/只需将找到的节点href值附加到列表中:

>>> result1 = []
>>> for a in soup.find_all('a', href=True):
    if a['href'].startswith('/game/'):
        result1.append(a['href'])

>>> print(result1)
['/game/index/4599712?org id=418']

至于第二个,您可以使用正则表达式,但在下一个兄弟的纯文本上a

>>> import re
>>> result2 = {}
>>> for a in soup.find_all('a', href=True):
    if a['href'].startswith('/team/'):
        m = re.search(r"\((\d+-\d+)\)", a.next_sibling.string)
        if m:
            result2[a.string] = m.group(1)
        else:
            result2[a.string] = ""

>>> print(result2)
{'Philadelphia': '3-1'}

\((\d+-\d+)\)提取-括号内的数字 + + 数字。如果此值不存在,则将使用找到的键添加键值,但为空值。


推荐阅读