python - Webscraping:如何检查属性是否存在以及它是否在没有结束程序的情况下继续
问题描述
我正在尝试抓取网站以获取所需的联系信息,例如手机、电子邮件、地址等...
有些页面将包含所有信息......而有些页面可能只有手机和电子邮件,但没有地址......以及中间有/没有这些字段的任何组合......
我一直在玩一些代码,但无法弄清楚
我如何检查我想要的信息是否存在于页面上(因为它不会总是一致的),如果它不是简单地忽略并刮掉所有“可用”信息,然后继续而不破坏程序
我正在尝试的代码:
if driver.find_elements_by_class_name('zsg-list_definition'):
trial = soup.findAll('dl', {'class': 'zsg-list_definition'})
if len(trial[0].dd.text) > 0:
address = trial[0].dd.text
else:
address = 'None'
if driver.find_elements_by_class_name('dont-break-out') == True:
websiteURL = soup.find('dd', {'class': 'dont-break-out'})
website = websiteURL.a.text
else:
website = 'None'
csv_writer.writerow([address, website])
此致
解决方案
可以只使用try except
:
...
try:
address = trial[0].dd.text
except:
address = 'None'
try:
websiteURL = soup.find('dd', {'class': 'dont-break-out'})
website = websiteURL.a.text
except:
website = 'None'
...
推荐阅读
- c# - 反向winforms treeview向上扩展节点
- spring-boot - 如何成功退出
- excel - 需要帮助缩短此 excel 2013 宏
- html - HTML 内容填充页面,但能够滚动到其他内容
- apache-spark - 使用 userID-SQL 上的新数据更新维护历史表
- sed - 通过多行 sed 在 XML 标记中搜索和替换
- postgresql - 如何将 Postgres 数据拆分为 JSON/对象,或用于 Express 的易于使用的格式
- php - PHP如何检查openload视频是否存在?
- scala - 如何正确使用服务层的IO和OptionT来理解?
- facebook - react-native with expo 问题与 facebook 广告