У меня не было проблем с захватом трех характеристик: хиты, пробеги и руби.Вот код, с которым я работал до сих пор:
#import modules
from bs4 import BeautifulSoup
import requests, os
from selenium import webdriver
#start webdriver
os.chdir('C:\webdrivers')
header = {'User-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'}
options = webdriver.ChromeOptions(); options.add_argument("--start-
maximized")
driver = webdriver.Chrome(chrome_options=options)
driver.get('https://www.baseball-reference.com/leagues/MLB/2018-standard-
batting.shtml')
#grab html
soup = BeautifulSoup(driver.page_source, 'html.parser')
driver.quit()
#parse three stats: rbi's, runs and hits
hits = [i.text for i in soup.find_all('td', {'data-stat': 'H'})]
runs = [i.text for i in soup.find_all('td', {'data-stat': 'R'})]
rbi = [i.text for i in soup.find_all('td', {'data-stat': 'RBI'})]
#print data
print(hits, runs, rbi)
Приведенный выше код прекрасно работает.Однако, когда я пытаюсь схватить имена жидкого теста, я сталкиваюсь с некоторыми проблемами.Имена жидкого теста разбираются неправильно.Я хотел бы только их имя и фамилию, если это возможно.
Вот что я попробовал:
print(soup.find_all('td', {'data-stat': 'player'}))
Имена бэттера есть в коде, но есть много дополнительных данных.Кроме того, мой компьютер сильно замедлился, когда я попробовал эту строку кода.Какие-либо предложения?Заранее благодарим за любую помощь, которую вы можете предложить!