网络抓取-卡在打印数字上

时间:2019-06-20 02:47:53

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

我正在尝试抓取玩家的所有统计信息。

我希望这些数字出来

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)

2 个答案:

答案 0 :(得分: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()

答案 1 :(得分:-1)

我不确定您是否熟悉硒,python是否支持selenim。您可以导航到任何URL并从dom中获取所需的数据。

您将获得youtube上的数字教程,由于您的要求太过直接了,您可以立即使用硒实现这一目标。

https://youtu.be/GJjMjB3rkJM