首页 > 解决方案 > Beautiful Soup (Python) 看不到 span 内的文本

问题描述

我无法弄清楚为什么 BS4 在以下情况下看不到跨度内的文本:

我的代码:

stars = soup.find('span', {'class': 'github-repo-info__item', 'data-key': 'stargazers_count'}).text

也试过:

stars = soup.find('span', {'class': 'github-repo-info__item', 'data-key': 'stargazers_count'}).get_text()

两者都返回一个空字符串''。元素本身的位置似乎正确(我可以毫无问题地在 PyCharm 调试器中浏览父母/兄弟姐妹。在网站的其他部分获取文本也可以正常工作。只是无法获取与 github 相关的统计信息。

有任何想法吗?

标签: pythonweb-scrapingbeautifulsoup

解决方案


因为这个页面使用Javascript来动态加载页面,所以你不能直接通过response.text

页面源代码: 在此处输入图像描述

您可以直接抓取API

import requests

r = requests.get('https://api.github.com/repos/psf/requests')
print(r.json()["stargazers_count"])

结果:

43010

推荐阅读