繁体   English   中英

如何刮投投手的名字和球队?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM