【问题标题】:web scraping - stuck on printing the numbers网页抓取 - 卡在打印数字上
【发布时间】:2019-06-20 02:47:53
【问题描述】:

我正在尝试抓取玩家的所有统计数据。

我希望这些数字出来

Stats
2019 SEASON / CAREER
PPG
16.6 / 9.7
ASST
2.0 / .7
REB
6.5 / 5.9
FG%
61.5 / 59.9
FT%
64.3 / 47.7
3P%
17.6 / 66.7

导入库

import requests
from bs4 import BeautifulSoup 

指定网址

url = "https://www.msn.com/en-us/sports/nba/montrezl-harrell/player/sp-id-30301000000698651"
result = requests.get(url).text

soup = BeautifulSoup(result, 'html.parser')

取出名称并获取其值

content = soup.find('div', {"class": "statsitem"})

print(content)

【问题讨论】:

    标签: python-3.x web-scraping beautifulsoup


    【解决方案1】:

    我认为它是动态加载的。看看开发工具网络选项卡中是否有一个 xhr 可以检索数据,您可以模仿。否则,要获得显示的布局,您可以使用 selenium 自动化浏览器,这将允许加载动态内容,然后将 page_source 转储到 bs 中

    import requests
    from bs4 import BeautifulSoup as bs
    from selenium import webdriver
    
    d = webdriver.Chrome(r'C:\Users\User\Documents\chromedriver.exe')
    d.get('https://www.msn.com/en-us/sports/nba/montrezl-harrell/player/sp-id-30301000000698651')
    soup = bs(d.page_source, 'lxml')
    
    title = soup.select_one('.playerstats h3')
    print(title.text)
    for item in soup.select('.statsitem'):
        print(item.select_one('.abbr').text, '\n', item.select_one('.statsvalue').text)
    d.quit()
    

    【讨论】:

    • 这回答了你的问题吗?
    【解决方案2】:

    不知道你是否熟悉 selenium,python 支持 selenim。您可以导航到任何 url 并从 dom 中抓取所需的数据。

    您将从 youtube 获得数字教程,并且由于您的要求过于简单,因此您可以使用 selenium 立即实现这一目标。

    https://youtu.be/GJjMjB3rkJM

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-04
      • 1970-01-01
      • 2020-06-18
      • 1970-01-01
      相关资源
      最近更新 更多