python - python速记表达式中的语法错误
问题描述
我正在使用bs4来抓取一个网站我有这样的表达:
links = ['https://example.com/' + link['href'] for link in school.findAll('a')]
我需要的是添加另一个条件,如果link
只有href
而不是附加链接。这是正常的代码。
if link.has_attr('href'):
//append'
我试过这个但没有成功
links = ['https://example.com/' + link['href'] if link.has_attr('href') for link in school.findAll('a')]
解决方案
有两种可能的方式:
1.
如果标签具有 href 属性,这将返回所有链接标签。
findAll('a',href=True)
2.
['https://example.com/' + link['href'] for link in school.findAll('a') if link.has_attr('href')]
如果您使用的是 bs4,最好使用find_all()方法findAll()
推荐阅读
- customization - 如何使用 android studio 在 mapbox 中自定义语音指令?
- python - 获取第三方模块的未定义模块错误
- laravel - 使用 laravel livewire 将焦点转移到另一个领域
- c - 货币转换代码不起作用 - 如何比较字符串
- sharepoint - C# 的图形 API:尝试在 Office 365 上创建团队时的 BadGateway 结果
- python - 安装有 Pip 问题的 `pygame`
- flutter - 如何在颤振中重新启动整个应用程序?
- node.js - 什么是好的通知模型?
- javascript - 将修改后的表发送到 ASP.NET MVC 中的控制器?
- python - 使用 Python 将 2 个视频连接成 1 个视频