python - 如何将 BeautifulSoup HREF 搜索从扩展至
问题描述
解决方案
要获取所有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+)\)
提取-
括号内的数字 + + 数字。如果此值不存在,则将使用找到的键添加键值,但为空值。
推荐阅读
- ruby-on-rails - X-Frame-Option 配置在 Rails 中不起作用
- javascript - 点击时谷歌地图更改标记图标
- laravel - 在 Laravel vuejs Axios 中仅填充一个文本框,具体取决于下拉列表中的选定值
- docker - 将运行自定义客户操作系统的虚拟机迁移到容器
- c - OpenMP 对并行计算进行基准测试
- botframework - Microsoft Botframework 上的 ResumeDialogAsync 不会触发
- javascript - 在空数组上调用 .find() 会导致错误
- python - 在 Python Selenium 中获取视频的长度
- c - 如何使我的 if else 语句继续?
- firebase - Firebase Web Analytics:什么是应用版本以及如何设置它