Как лучше всего комбинировать фреймы данных за пределами l oop при парсинге веб-страниц - PullRequest
0 голосов
/ 10 июля 2020

Я написал код, который собирает статистику по бейсболу для многих игроков. Однако я изо всех сил пытаюсь понять, как лучше всего написать их в excel / csv. Я знаю, что добавление фреймов данных в для l oop очень неэффективно, и я пытался записать их в файл csv, поскольку я иду в l oop, но он писал только заголовки, а не базовый статистика. Я попытался воссоздать минимально воспроизводимый пример. Я также был бы признателен за совет о том, как сделать этот код более эффективным, поскольку в конечном итоге я буду очищать тысячи веб-страниц, и при нынешних темпах это займет примерно 4–5 часов. Заранее спасибо.

from selenium import webdriver
from bs4 import BeautifulSoup
import pandas as pd
import time
import requests

browser = webdriver.Chrome()
urls = ['https://www.fangraphs.com/players/aaron-judge/15640/splits?season=0&position=OF&split=0.5', 'https://www.fangraphs.com/players/aaron-judge/15640/splits?season=0&position=OF&split=0.6']

for url in urls:
    browser.get(url)

    standard = browser.find_element_by_css_selector("#standard").get_attribute('outerHTML')

    soup = BeautifulSoup(standard, 'html.parser')
            
    dfStandard = pd.read_html(str(soup))[0]
        
    advanced = browser.find_element_by_css_selector("#advanced").get_attribute('outerHTML')

    soup = BeautifulSoup(advanced, 'html.parser')
    dfAdvanced = pd.read_html(str(soup))[0]

    battedBall = browser.find_element_by_css_selector("#batted-ball").get_attribute('outerHTML')

    soup = BeautifulSoup(battedBall, 'html.parser')
    dfbattedBall = pd.read_html(str(soup))[0]

    dfinitial = pd.merge(dfStandard, dfAdvanced, on=['Season', 'Handedness'], how='inner')
    final = pd.merge(dfinitial, dfbattedBall, on=['Season', 'Handedness'], how='inner')
    final.drop(['AVG_y'], axis=1, inplace=True)

    print(final)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...