[英]How to scrape the pitcher's name and team?
我是抓取/编码的新手,如果可能的话可以使用一些帮助。
from bs4 import BeautifulSoup
import requests
import pandas as pd
page_link ='https://www.baseball-reference.com/previews/index.shtml'
page_response = requests.get(page_link, timeout=5)
soup = BeautifulSoup(page_response.content, "html.parser")
我需要帮助找到合适的方法来提取投手的名字和球队。
(仅举例:)
player_name = [i.text for i in soup.find_all('td', {'href': 'example-name'})]
team = [i.text for i in soup.find_all('td', {'href': 'example-team'})]
这是我导出到excel的地方:
my_dict = dict(zip(player_name, team))
df = pd.DataFrame(pd.Series(my_dict))
writer = pd.ExcelWriter('pitching_webscrape.xlsx')
df.to_excel(writer,'Sheet1')
writer.save()
我想将投手的名字和球队导入到 excel。 在此先感谢您的帮助! 如果我可以改进我的问题或添加更多详细信息,请告诉我。
这是我到目前为止的代码:
from bs4 import BeautifulSoup
import requests
import pandas as pd
page_link ='https://www.baseball-reference.com/previews/index.shtml'
page_response = requests.get(page_link, timeout=5)
soup = BeautifulSoup(page_response.content, "html.parser")
我的第一个代码:
t = soup.find_all('td')
print(t)
我的第一个输出:
[ Blue Jays (60-70) , ,预览, Orioles (37-94) , , 7:05PM , TOR , Sam Gaviglio
(#43, 28, RHP, 3-6, 4.94), BAL ,大卫赫斯
(#41, 24, RHP, 2-8, 5.50),白袜队(51-79) , ,
我的第二个代码:
t = soup.find_all('td')
for a in t:
print(a.text)
我的第二个输出:
蓝鸟队 (60-70)
预览
金莺 (37-94)
晚上 7:05
TOR Sam Gaviglio(#43, 28, RHP, 3-6, 4.94) BAL David Hess(#41, 24, RHP, 2-8, 5.50) White Sox (51-79)
我越来越近了,但是,我只想要球员的名字和球队的名字。 (即 TOR,Sam Gaviglio)。 我也希望将其导入到 excel 中。 谢谢! =)
如果你只想要一个球员和球队的list
,那么这应该就足够了:
import re
players_and_teams = []
for i in soup.find_all('td'):
if i.find_all('a'):
for link in i.find_all('a'):
if not re.findall(r'Preview',link.text):
players_and_teams.append(link.text)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.