Python 无法保留特定项目并忽略其余项目
我已经用python编写了一些代码来从三个不同的站点中获取特定的条目。对于每个站点,元素中的项是不同的。因此,我必须创建三个不同的选择器来捕捉这些。我的脚本将在一个站点中查找一个项目,如果在第一个站点中找不到该项目,它将接着查找另一个项目,以此类推。我想实现的是,如果scraper在它的第一次搜索中找到了项目,这意味着在第一个链接中,那么它将忽略其余的链接,依此类推。然而,我面临的问题是,如果scraper在第二个链接中找到了它想要的项目,然后当它转到第三个链接时又没有找到任何内容,它就不会打印任何内容。如何修复我的脚本,使其在任何链接中找到某个特定项目后立即停止搜索 我的脚本的外观更像下面的脚本:Python 无法保留特定项目并忽略其余项目,python,python-3.x,if-statement,web-scraping,Python,Python 3.x,If Statement,Web Scraping,我已经用python编写了一些代码来从三个不同的站点中获取特定的条目。对于每个站点,元素中的项是不同的。因此,我必须创建三个不同的选择器来捕捉这些。我的脚本将在一个站点中查找一个项目,如果在第一个站点中找不到该项目,它将接着查找另一个项目,以此类推。我想实现的是,如果scraper在它的第一次搜索中找到了项目,这意味着在第一个链接中,那么它将忽略其余的链接,依此类推。然而,我面临的问题是,如果scraper在第二个链接中找到了它想要的项目,然后当它转到第三个链接时又没有找到任何内容,它就不会打印
import requests
from lxml.html import fromstring
list_urls = ['url1','url2','url3']
for link in list_urls:
res = requests.get(link).text
root = fromstring(res)
try:
item = root.cssselect(some_selector)[0].text
except:
item =""
try:
item = root.cssselect(another_selector)[0].text
except:
item =""
try:
item = root.cssselect(some_other_selector)[0].text
except:
item =""
print(item)
首先,如果第一次搜索成功,则必须阻止语句才能转到下一次搜索。您可以尝试以下方法:
for link in list_urls:
res = requests.get(link).text
root = fromstring(res)
try:
item = root.cssselect(some_selector)[0].text
except:
item =""
try:
item = root.cssselect(another_selector)[0].text
except:
item =""
try:
item = root.cssselect(some_other_selector)[0].text
except:
item =""
print(item)
或者更好:
for link in list_urls:
res = requests.get(link).text
root = fromstring(res)
try:
item = root.cssselect(some_selector)[0].text
print(item)
continue
except:
item =""
try:
item = root.cssselect(another_selector)[0].text
print(item)
continue
except:
item =""
try:
item = root.cssselect(some_other_selector)[0].text
print(item)
continue
except:
item =""
您需要插入
break
s退出循环,并在for循环外部使用print(项目)