我正在建立一个网络刮板来获取有关网球运动员的信息。这是一个从头开始项目的开始,我目前遇到了一个问题。我将播放器数据存储在字典中,其中包含以下行:
player = {}
player['first'] = soup.select('.first-name')[0].text
player['last'] = soup.select('.last-name')[0].text
player['dob'] = soup.select('.table-birthday')[0].text
然后我得到这个结果:
{'first':'Roger','last':'费德勒','dob':'\ r \ n \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t (1981年8月8日)\ r \ n \吨\吨\吨\吨\吨\吨\吨\吨\吨\吨\吨'}
如何将出生日期定为可以使用的正常日期?被抓的网站是:http://www.atpworldtour.com/en/players/roger-federer/f324/overview
这是一种方式:
from datetime import datetime
d = {'first': 'Roger', 'last': 'Federer',
'dob': '\r\n\t\t\t\t\t\t\t\t\t\t\t\t(1981.08.08)\r\n\t\t\t\t\t\t\t\t\t\t\t'}
datetime.strptime(d['dob'][d['dob'].find('(')+1:d['dob'].find(')')], '%Y.%m.%d')
# datetime.datetime(1981, 8, 8, 0, 0)
说明
d['dob'][d['dob'].find('(')+1:d['dob'].find(')')]
在括号中提取字符串的一部分。datetime.strptime
用于将字符串转换为datetime
对象。