Hogyan web kaparja MLB szemrebbenés érdekében, hogy az Excel?

szavazat
0

Én kaparás baseball lineups és az importáló a python kódot excel segítségével pandák.

Amit keresek:

  1. Távolítsuk idézőjelbe származó nevek
  2. Zárójelek eltávolítása származó kezdetén és végén minden csapat
  3. Osztott nevek különböző sejtekben

Példa áramkime- csapat 1:

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

Az összes fenti nevek idézőjelbe, vessző és konzolok ragaszkodnak hozzájuk. Ezek felsorolása ugyanabban a cellában is.

Példa előnyös Excel kimenet csapat 1:

Daniel Norris    Masahiro Tanaka    Miki Mahtook    etc.

Mint látható a fenti szeretnék minden idézőjelbe, vessző és konzolok eltávolítjuk. Továbbá, szeretném az összes játékos nevét minden csapatot, hogy saját megfelelő cellákban.

Én már keresi a megfelelő kódot az interneten. Eddig láttam három példát stackoverflow.com de másképp néznek ki, mint az enyém. Megmutatom mind a három. Talán az egyik ilyen lehet használni ebben az esetben.

1. példában karakterlánc módszer:

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

2. példa alkalmazásával cserélje módszer:

s = s.replace(World, )

3. példa eltávolítás módszer:

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)

Lehetséges, hogy végre egy ilyen kódokat, hogy ezt a három elem fent felsorolt? Ha nem, talán valaki tud ajánlani nekem némi betekintést, hogyan lehetne jobban elérni a céljaimat. Láttam már néhány ember online utalnak regex szűrőt. Nem vagyok tisztában azzal, hogyan kell használni ezeket, mégis. Köszönöm előre is, hogy időt és energiát!

By the way, én teljesen új kódolási és kaparás. Nagyon hálás vagyok minden segítséget, amit kaphat. Kérjük, tudassa velünk, ha bármilyen kérdése van, vagy ha tudok hozzá részletesebben, hogy jobban segíthessünk.

Itt van a kód eddig:

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()
A kérdést 02/09/2018 05:28
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
0

Ha azt szeretnénk, hogy kaparja excel azt javasoljuk, hogy használja a CSV-fájlok (ahelyett, hogy a XLSX- is). Ők sokkal könnyebb kezelni generálni és erre, akkor használja a csv beépített modul.

Itt van egy minta felülvizsgálata a kódot.

from bs4 import BeautifulSoup
import requests
import csv

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 = [_.text for _ in g.find_all('a', class_='player-link')]
    all_games.append(game)

with open('players.csv', 'w', newline='') as csvfile:
    player_writer = csv.writer(csvfile)
    player_writer.writerows(all_games)
Válaszolt 02/09/2018 08:21
a forrás felhasználó

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