【问题标题】:Beautiful Soup (Python) not seeing text inside of spanBeautiful Soup (Python) 在 span 内看不到文本
【发布时间】:2020-07-20 11:57:27
【问题描述】:

我无法弄清楚为什么 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 相关的统计信息无法获取。

有什么想法吗?

【问题讨论】:

    标签: python web-scraping beautifulsoup


    【解决方案1】:

    由于本页面使用Javascript动态加载页面,所以无法通过response.text直接获取

    页面源代码:

    你可以直接抓取API

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

    结果:

    43010
    

    【讨论】:

      【解决方案2】:

      使用bs4,我们不能刮星率。

      检查网站后,请检查响应 html。 那里有名为“github-repo-info__item”的类信息,但没有文本信息。

      在这种情况下,请使用selenium

      【讨论】:

        猜你喜欢
        • 2021-01-24
        • 1970-01-01
        • 1970-01-01
        • 2017-12-07
        • 1970-01-01
        • 1970-01-01
        • 2017-12-31
        • 2018-07-27
        • 1970-01-01
        相关资源
        最近更新 更多