Python中文
首页
教程
问答
标签
搜索
登录
注册
Python中的Web抓取如何捕获所有<a>元素
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在使用<code>beautifulsoup4</code>从歌词网网站,特别是这个链接:<a href="https://www.lyrics.com/album/1447935" rel="nofollow noreferrer">https://www.lyrics.com/album/1447935</a>。你知道吗</p> <p>从这个块中,我试图提取两个<code><a></code>元素:</p> <pre><code>[<table class="tdata"> <colgroup> <col style="width: 50px;"/> <col style="width: 430px;"/> <col style="width: 80px;"/> <col style="width: 80px;"/> </colgroup> <thead> <tr> <th>#</th> <th>Song</th> <th>Duration</th> <th> </th> </tr> </thead> <tbody> <tr> <td class="tal qx">1</td> <td class="tal qx"> <strong> <a href="/lyric/15183453/Make+You+Feel+My+Love">Make You Feel My Love</a> </strong> </td> <td class="tal qx">3:32</td> <td class="tal vam rt"> </td></tr><tr><td class="tal qx">2</td> <td class="tal qx"> <strong> <a href="/lyric/15183454/Painting+Pictures">Painting Pictures</a> </strong> </td> <td class="tal qx">3:33</td> <td class="tal vam rt"> </td> </tr> </tbody> </table>] </code></pre> <p>这是我的密码:</p> <pre><code>url = "http://www.lyrics.com" + album_url page = r.get(url) soup = bs(page.content, "html.parser") songs = [a.get('href') for a in (table.find('a') for table in soup.findAll('table')) if a] </code></pre> <p>但是,它只返回第一个<code><a></code>:</p> <pre><code>['/lyric/15183453/Make+You+Feel+My+Love'] </code></pre> <p>有什么问题吗?你知道吗</p> <p>编辑:谢谢大家的回答!我投了更高的票,但我没有足够的代表来展示</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>能够使它与:</p> <pre><code>for a in soup.findAll('a'): if a.parent.name == 'strong': if a.parent.parent.name == 'td': print(a["href"]) </code></pre> <p>不过,我仍然不知道为什么其他方法不起作用,因为我在程序的其他地方使用过它,没有任何问题。你知道吗</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
plt.savefig不会覆盖现有文件
10 回答
plt.savefig不保存图像
4 回答
plt.savefig在jupyter笔记本中不起作用
7 回答
plt.savefig在从另一个fi调用时停止工作
6 回答
plt.savefig在调用plt.show之前保存空数字
7 回答
plt.save不创建png文件
5 回答
plt.scatter overlay分类数据帧列
4 回答
Plt.Scatter:如何添加title、xlabel和ylab
4 回答
plt.scatter()绘图与Matplotlib中的plt.plot()绘图类似
1 回答
plt.scatter错误'NoneType'对象在成功运行后没有属性'sqrt'
5 回答
plt.set_title()中的标题字符串有误
10 回答
plt.show()
9 回答
plt.show()不在Jupyter笔记本上渲染任何内容
10 回答
plt.show()不打印plt.plot only plt.scatter
2 回答
plt.show()不显示三维散射图像
8 回答
plt.show()不显示任何内容
5 回答
plt.show()不显示数据,而是保留它供下一个图表使用(spyder)
5 回答
plt.show()使终端挂起
3 回答
plt.show()无法使用此代码
6 回答
plt.show()没有打开新的图形风
6 回答