我想抓取 2018 年的所有 MLB 击球手统计数据。这是我目前的代码:
#import modules
from urllib.request import urlopen
from lxml import html
#fetch url/html
response = urlopen("https://www.baseball-reference.com/leagues/MLB/2018-standard-batting.shtml")
content = response.read()
tree = html.fromstring( content )
#parse data
comment_html = tree.xpath('//comment()[contains(., "players_standard_batting")]')[0]
comment_html = str(comment_html).replace("-->", "")
comment_html = comment_html.replace("<!--", "")
tree = html.fromstring( comment_html )
for batter_row in tree.xpath('//table[@id="players_standard_batting"]/tbody/tr[contains(@class, "full_table")]'):
csk = batter_row.xpath('./td[@data-stat="player"]/@csk')[0]
当我刮掉所有的击球手时,每个名字都附有 0.01。我尝试使用以下代码删除附加号码:
bat_data = [csk]
string = '0.01'
result = []
for x in bat_data :
if string in x:
substring = x.replace(string,'')
if substring != "":
result.append(substring)
else:
result.append(x)
print(result)
此代码删除了数字,但是,只打印了姓氏:
输出:
['Zunino, Mike']
此外,名称周围有一个括号和引号。名字也是倒序的。
1) 如何打印所有击球手的名字?
2) 如何去掉引号和括号?
3) 我可以颠倒名字的顺序,先打印名字,然后打印姓氏吗?
我希望的最终输出是所有击球手的名字,例如:Mike Zunino。
我是这个网站的新手......我也是抓取/编码的新手,非常感谢我能得到的任何帮助!=)
宝慕林4294392
慕慕森
相关分类