[英]How can I find the src of the first img on a page?
我正在构建一个 web 刮板。 下面这段代码有效,这意味着它实际上找到了我要找的东西,也就是文章中的主图(总是第一张)。
picture = []
for item in body.find_all('img'):
picture.append(item['src'])
break
有没有更简单、更流畅的方法来做我正在做的事情? 我试过了:
picture = body.find('img', ['src'])
这只是返回“无”。
尝试这个:
picture_src = body.find('img').attrs['src']
print(picture_src)
picture = []
for item in body.find_all('img'):
picture.append(item['src'])
break
让我们完成它。 首先,“休息”是不必要的。 我们可以从“for”循环的末尾掉下来。
picture = []
for item in body.find_all('img'):
picture.append(item['src'])
好的,现在这里的 Python 约定是使用像评论中建议的 Mathias 这样的列表理解。
列表理解示例:
doubled = [item * 2 for item in [1, 2, 3, 4]]
print(doubled)
会给:
[2, 4, 6, 8]
与 Mathias 解决方案相比:
pictures = [item['src'] for item in body.find_all('img')]
请注意,如果有任何 img 没有 src,这将失败,这也是原始解决方案中的潜在缺陷。
pictures = [item['src'] for item in body.find_all('img') if 'src' in item]
这实际上比我通常想要的一行更复杂,因为稍后阅读这段代码需要几秒钟来思考。 如果您可以信任过去的您,则可以轻松解决:
# list of all img src attributes
pictures = [item['src'] for item in body.find_all('img') if 'src' in item]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.