使用BeautifulSoup抓取下拉扩展中的数据。有麻烦

时间:2019-12-27 00:48:19

标签: python web-scraping beautifulsoup

我正在做一个个人项目,在这里我想获得职业网球选手参加的网球比赛的机会。我正在使用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')

感谢您的帮助!

0 个答案:

没有答案