我正在做一个个人项目,在这里我想获得职业网球选手参加的网球比赛的机会。我正在使用flashscore.com作为数据源。
我一直在非常成功地抓取数据,但是我只遇到一个问题,我将举一个例子。
因此,假设我要查看Serena Williams的所有比赛: 我使用链接
https://www.flashscore.com/player/williams-serena/ttsu68nH/results/#s
,我使用BeautifulSoup抓取数据,但是比赛历史只能追溯到现在,所以我只能抓取网站最初显示的最后一场比赛。如果您点击链接,则可以看到页面末尾有一个按钮,显示“显示更多匹配项”。当您单击它时,您可以看到更多的比赛历史记录,这就是我要访问的历史记录。
我在使用代码执行此操作时遇到了麻烦,因为当您单击“显示更多匹配项”时,URL仍然具有相同的地址。因此,我的代码转到了仅具有比赛历史记录的第一个匹配项的初始网站。
我可以通过手动单击来访问较早的比赛历史记录,但是如果在单击“显示更多比赛”后网址仍然保持相同,该如何自动执行呢?
这是我的代码:
req = Request(link, headers={'User-Agent': 'Mozilla/5.0'})
webpage = urlopen(req).read()
soup = BeautifulSoup(webpage,'lxml')
page = soup.find('div',{'id': 'matches-block-results_s'}).text
matches = re.split('CX|WTA',page)
for m in matches:
print(m+'\n')
感谢您的帮助!