【发布时间】:2020-07-31 13:58:47
【问题描述】:
我正在抓取一个网站,结果以一个 ID 为格式。输出随结果中的中断次数而变化。我构建了一个模式,可以提取公司名称、地址、城市/州和电话号码。
我最初的目标是删除其中包含“SUITE”的任何元素,但一些地址在与实际地址相同的通道中具有“SUITE”并抛出模式。有什么方法可以检查字符串 'SUITE' 之前是否有任何值,如果没有,请将其删除?
for r in list(result_list):
if '<br/>' in r:
result_list.remove(r)
else:
if 'dba' in r:
result_list.remove(r)
else:
if 'SUITE' in r:
result_list.remove(r)
else:
clean_list.append(r)
示例 1:
1066915 #<- License
BROOKFIELD SOCAL LAND CONSTRUCTORS LLC #<- Business Name (index 0)
<br/>
12265 EL CAMINO REAL #<- Address (index 1)
<br/>
SUITE 180 #<- NOT NEEDED
<br/>
SAN DIEGO, CA 92130 #<- City/State (index 2)
<br/>
Business Phone Number:(714) 427-6868 #<- Phone (index 3)
<br/>
<br/>
示例 2:
1066919
J G CONST CORP #<- company name (index 0) or every 4th element
<br/>
dba J G CONSTRUCTION CORP #<- removed
<br/>
<br/>
449 W FOOTHILL BLVD SUITE #276 #< -Address would be removed with current
<br/>
GLENDORA, CA 91741 #<- City/State (index 2)
<br/>
Business Phone Number:(626) 460-1014 #<- Phone (index 3)
<br/>
<br/>
我的想法是,如果有办法检查套件中 s 之前是否有空格或字符一或两个元素,则不应将其删除。
【问题讨论】:
-
您在迭代
result_list时修改它,这总是一个坏主意。如果您不这样做,您的问题会神奇地消失吗? -
不确定我是否理解。我以前听说过它的不好做法,但我不熟悉如何多次修改列表的另一种方法
-
@usr2564301。问题与此无关,但建议仍然很好。
-
@sjuice10。你知道
elif。更好的是,or? -
我提到这个是因为我注意到你有不选择答案的习惯。选择答案会将您的问题从未回答队列中移除,并为帮助您的人(以及您自己)提供一些声誉积分。