我使用以下代码对链接进行排序:
links = set(soup.findAll('a'))
links = sorted(links, key=lambda x: x['href'], reverse=True)
有时我会收到这样的错误:
答案 0 :(得分:3)
有时,Web设计人员将包括不具有href属性的锚点(标签),即不链接到任何URL的锚点。有用的原因之一是可以参考网页中的部分:
<html>
<body>
<a name="first"></a>
<p>blah</p>
<a name="second"></a>
<p>blah2</p>
</body>
</html>
在上方,如果您转到page#second,浏览器将在页面顶部放置具有相应名称的锚点。
要修复您的代码,您可以先过滤链接以确保href属性的存在:
links = filter(lambda x: x.has_attr('href'), links)