从Python BeautifulSoup抓取HREF涉及列表理解的初学者问题

2024-04-20 13:08:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经用我的代码缩小了HTML的范围,但是我在使用列表理解来获取href地址时遇到了困难。在

以下是我的代码(基本URL和STEM URL是固定地址):

soup = BeautifulSoup(requests.get(BASE_URL).text)
divyclass = soup.find("div", {"class":"node-inner"}).tbody

当我为列表理解添加以下行时,我遇到问题并得到这个错误(TypeError: 'NoneType' object has no attribute '__getitem__'):

^{pr2}$

当我跑的时候

^{3}$

,顺便说一句,我得到了这个输出,这样您就可以看到我从何处提取了a hrefs:

<td align="center" class="tableheader" colspan="4" valign="middle">NBA Drafts</td>
<td align="center" class="text" valign="middle"> </td>
<td align="center" class="text" valign="middle"> </td>
<td align="center" class="text" valign="middle"> </td>
<td align="center" class="text" valign="middle"><a href="/nba_final_draft/2014">2014</a></td>
<td align="center" class="text" valign="middle"> <a href="/nba_final_draft/2013">2013</a></td>
<td align="center" class="text" valign="middle"> <a href="/nba_final_draft/2012">2012</a></td>
<td align="center" class="text" valign="middle"><a href="/nba_final_draft/2011">2011</a></td>
<td align="center" class="text" valign="middle"><a href="/nba_final_draft/2010">2010</a></td>
<td align="center" class="text" valign="middle" width="25%"><a href="/nba_final_draft/2009">2009</a></td>
<td align="center" class="text" valign="middle" width="25%"><a href="/nba_draft_history/2008.html">2008</a></td>
<td align="center" class="text" valign="middle" width="25%"><a href="/nba_draft_history/2007.html">2007</a></td>
<td align="center" class="text" valign="middle" width="25%"><a href="/nba_draft_history/2006.html">2006</a></td>
<td align="center" class="text" valign="middle" width="25%"><a href="/nba_draft_history/2005.html">2005</a></td>
<td align="center" class="text" valign="middle" width="25%"><a href="/nba_draft_history/2004.html">2004</a></td>
<td align="center" class="text" valign="middle" width="25%"><a href="/nba_draft_history/2003.html">2003</a></td>
<td align="center" class="text" valign="middle" width="25%"><a href="/nba_draft_history/2002.html">2002</a></td>
<td align="center" class="text" valign="middle" width="25%"><a href="/nba_draft_history/2001.html">2001</a></td>

啊!我只想拉高爆弹!!提前谢谢各位!在


Tags: texturlmiddlehtmlwidthhistoryclassfinal
1条回答
网友
1楼 · 发布于 2024-04-20 13:08:38

对于没有a元素的行,row.a将是None。如果你改变

links = [STEM_URL + row.a["href"] for row in divyclass.findAll("td")]

^{pr2}$

这将过滤掉没有row元素的row元素。在

相关问题 更多 >