У меня есть файл Excel с именем 'MLB_names.xlsx'.В этом файле у меня есть один лист с именем «Домой», содержащий формулы, которые я хотел бы сохранить.(Лист 1)
Я пытаюсь добавить в этот файл Excel два веб-фрагмента.Я хотел бы, чтобы первый веб-скетч, MLB batters, был напечатан на новом листе под названием «batters».(Лист 2)
Мне бы хотелось, чтобы второй скребок для веб-страниц, кувшины MLB, был напечатан на новом листе под названием «Кувшины».(Лист 3)
Ниже приведу дополнительную информацию о проекте ...
Лист 1): «Домой»
Этолист я уже сохранил.Я хотел бы сохранить формулы в этом листе, если это возможно.
Лист 2): «Баттерс»
Я соскоблил все имена и возрасты Баттеров MLB 2018 года.
Вот код моего первого успешного скребка:
#import modules
from urllib.request import urlopen
from lxml.html import fromstring
import pandas as pd
#fetch batting url
url = "https://www.baseball-reference.com/leagues/MLB/2018-standard-batting.shtml"
#remove HTML Markup
content = str(urlopen(url).read())
comment = content.replace("-->","").replace("<!--","")
tree = fromstring(comment)
#create column titles
columns = ("names", "age")
df = pd.DataFrame(columns=columns)
#parse HTML
for idx, pitcher_row in enumerate(tree.xpath('//table[contains(@class,"stats_table")]//tr[contains(@class,"full_table")]')):
names = pitcher_row.xpath('.//td[@data-stat="player"]/a')[0].text
age = pitcher_row.xpath('.//td[@data-stat="age"]/text()')[0]
#create dataframe
df.loc[idx] = (names, age)
#print data
writer = pd.ExcelWriter('MLB_names.xlsx')
df.to_excel(writer, 'Sheet1')
writer.save()
Лист 3): «Кувшины»
Теперь для моего 2-го скрапа... Это в основном та же самая кодировка, но теперь для кувшинов:
#import modules
from urllib.request import urlopen
from lxml.html import fromstring
import pandas as pd
#fetch pitching url
url = "https://www.baseball-reference.com/leagues/MLB/2018-standard-pitching.shtml"
#remove HTML Markup
content = str(urlopen(url).read())
comment = content.replace("-->","").replace("<!--","")
tree = fromstring(comment)
#create column titles
columns = ("names", "age")
df = pd.DataFrame(columns=columns)
#parse HTML
for idx, pitcher_row in enumerate(tree.xpath('//table[contains(@class,"stats_table")]//tr[contains(@class,"full_table")]')):
names = pitcher_row.xpath('.//td[@data-stat="player"]/a')[0].text
age = pitcher_row.xpath('.//td[@data-stat="age"]/text()')[0]
#create dataframe
df.loc[idx] = (names, age)
#print data
writer = pd.ExcelWriter('MLB_names.xlsx')
df.to_excel(writer, 'Sheet2')
writer.save()
Просто чтобы повторить то, что я ищу ...
1) поддерживать лист "Home" с формулами.
Не уверен, должен ли я использовать следующий код для этого шага:
import pandas as pd
from pandas import read_excel
my_sheet_name = 'Home'
df = read_excel('MLB_names.xlsx', sheet_name = 'Home')
2) инициировать очистку 1 и очистку 2
Эта часть была завершена.Я мог бы использовать помощь в создании двух отдельных фреймов данных, поэтому я могу выполнить следующий шаг.
3) печать в Excel с использованием панд
лист 1) «Дом» остается в такте с формулами
лист 2) «баттерс»
лист 3) «кувшины»