Hvordan web skrape MLB batting for å utmerke seg?

stemmer
0

Jeg skraping baseball lineups og importere python kode i Excel ved hjelp av pandaer.

Det jeg leter etter:

  1. Fjern anførselstegn fra navn
  2. Fjern brakettene fra starten og slutten av hvert lag
  3. Split navnene i ulike celler

Eksempel på strømutgang for Lag 1:

['Daniel Norris', 'Masahiro Tanaka', 'Mikie Mahtook', etc.]

Alle de ovennevnte navnene har anførselstegn, komma og parentes knyttet til dem. De er alle oppført i samme celle, også.

Eksempel på foretrukket utmerker utgang for Lag 1:

Daniel Norris    Masahiro Tanaka    Miki Mahtook    etc.

Som du ser ovenfor Jeg ønsker alle anførselstegn, komma og parentes fjernet. Dessuten ville jeg liker alle spillernes navn fra hvert lag til å være i sine egne respektive celler.

Jeg har vært på jakt etter den rette koden online. Så langt har jeg sett tre eksempler på stackoverflow.com men de ser annerledes ut enn min. Jeg vil vise alle tre. Kanskje en av disse kan brukes i dette tilfellet.

Eksempel 1 ved anvendelse av strengen metode:

s = s.strip(['o','1'])

Eksempel 2 ved anvendelse av skift-metoden:

s = s.replace(World, )

Eksempel 3 ved anvendelse av fjern-metoden:

x = [1,2,3,4,2,2,3]
def remove_values_from_list(the_list, val):
    for i in range(the_list.count(val)):
        the_list.remove(val)

remove_values_from_list(x, 2)

print(x)

Er det mulig å gjennomføre en av disse kodene for å gjøre de tre elementene jeg nevnt ovenfor? Hvis ikke, kan kanskje noen gi meg litt innsikt i hvordan du bedre nå mine mål. Jeg har sett noen folk på nettet foreslå en regex filter. Jeg er ikke klar over hvordan du bruker disse, skjønt. Takk på forhånd for din tid og innsats!

Forresten, jeg er helt nytt for koding og skraping. Jeg er veldig takknemlig for all hjelp jeg kan få. Vennligst gi meg beskjed hvis du har noen spørsmål eller om jeg kan legge til flere detaljer for å kunne hjelpe deg.

Her er min kode så langt:

from bs4 import BeautifulSoup
import requests
import pandas as pd

url = 'http://www.baseballpress.com/lineups'

soup = BeautifulSoup(requests.get(url).text, 'html.parser')

all_games = []

for g in soup.find_all(class_=game):
    players = g.find_all('a', class_='player-link')
    game = {
        'players': [_.text for _ in g.find_all('a', class_='player-link')],
    }
    all_games.append(game)

print(all_games) 

df = pd.DataFrame.from_dict(all_games)
writer = pd.ExcelWriter('batting lineup.xlsx')
df.to_excel(writer, 'baseball_sheet')
writer.save()
Publisert på 02/09/2018 klokken 05:28
kilden bruker
På andre språk...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more