有一个网站提供足球(足球)相关的统计数据,我发现内部选项查询数据是有限制的,并希望执行我自己的分析,但这样做我必须刮掉数据 - 我是使用美丽的汤4.
找到文档here。
根据Beautiful Soup文档,我可以使用find_all()
搜索特定标记,但是当我尝试使用它时,它会显示空白。
from urllib.request import urlopen
from bs4 import BeautifulSoup
import csv as csv
html = urlopen("http://members.fantasyfootballscout.co.uk/player-stats/goalkeepers/")
bsObj = BeautifulSoup(html.read(), "lxml")
据推测,在支付墙后面你将无法访问它。考虑到这一点,我将发布代码片段。
<tbody>
<tr>
<td><input type="checkbox" name="players[]" value="61302"></td>
<td class="first">
<a href="/player-profiles/ryan-allsopp/" class="enhanced-title" title="Ryan Allsopp"> Allsopp </a>
<div class="profile-title">
<img src="/images/players/small/default.png" alt="" width="42" height="64">
<br>Ryan Allsopp <br> (Bournemouth, Goalkeeper)
</div>
</td>
<td class="nowrap">
<span class="team-disc bou-light"></span>
<a href="/player-stats/goalkeepers/fantasy-index/bournemouth/" title="Bournemouth"> BOU</a>
</td>
<td title="Starts: 0">0</td>
<td title="Time Played: 54"> 54</td>
<td title="Subbed On: 1">1</td>
<td title="Subbed Off: 0"> 0</td>
<td title="Goals: 0"> 0 </td>
<td title="Assists: 0"> 0 </td>
<td title="Clean Sheets: 0">0 </td>
<td title="Goals Conceded: 1"> 1 </td>
<td title="Own Goals: 0"> 0 </td>
<td title="Saves: 0"> 0 </td>
<td title="Premier League Yellow Cards: 0"> 0</td>
<td title="Premier League Total Red Cards: 0"> 0 </td>
</tr>
<tr>
<td><input type="checkbox" name="players[]" value="57187"></td>
首先,我想要提取所有表格数据,但我在识别BS中的一个td时遇到问题。
bsObj.td # returns empty set
bsobj.find_all('td') # returns empty set
我哪里错了?
答案 0 :(得分:0)
上面的评论很有帮助,我已按照建议坚持会话cookie但未能解决问题。
该解决方案涉及由站点的javascript部分进行的异步HTTP调用。我已经安装了selenium(文档here),我将用它来执行javascript,让我可以访问我想要的数据。