我想使用 python 3.4 在 for 循环中仅打印一次特定行
I want to print specific line just one time in for loop using python 3.4
我想在 for 循环中只打印一次特定的行,但是在一行中输入结果,它给出了四次相同的结果请帮助我如何在打印一行后停止 for 循环
这是完整的 html 和 python 代码以及此脚本的结果
<ul class="breadcrumbs" id="BREADCRUMBS">
<li class="breadcrumb_item " itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
<a class="breadcrumb_link" href="/Tourism-g191-United_States-Vacations.html" itemprop="url" onclick="ta.setEvtCookie('Breadcrumbs', 'click', 'Country', 1, this.href); ">
<span itemprop="title">United States</span>
</a>
<span class="separator">›</span>
</li>
.
.
.
.
Python 打印结果的脚本
ulpart = soup.find_all("ul", {"class": "breadcrumbs"})
for unorder in ulpart:
div2 = soup.find_all("li", {"class": "breadcrumb_item "})
for listitem in div2[0:]:
country = soup.select_one("li.breadcrumb_item a[onclick*=Country]").get_text(strip=True)
print(country)
这是此代码的结果,它打印了四次相同的结果
United State
United State
United State
United State
但我只想要一次这样的美国:
United State
printed_countries = list()
ulpart = soup.find_all("ul", {"class": "breadcrumbs"})
for unorder in ulpart:
div2 = soup.find_all("li", {"class": "breadcrumb_item "})
for listitem in div2[0:]:
country = soup.select_one("li.breadcrumb_item a[onclick*=Country]").get_text(strip=True)
if not country in printed_countries:
print(country)
printed_countries.append(country)
因为您使用的是无序列表,所以您可以使用 python 设置数据类型(如果您需要顺序,请使用列表):
printed = set()
ulpart = soup.find_all("ul", {"class": "breadcrumbs"})
for unorder in ulpart:
div2 = soup.find_all("li", {"class": "breadcrumb_item "})
for listitem in div2[0:]:
country = soup.select_one("li.breadcrumb_item a[onclick*=Country]").get_text(strip=True)
printed.add(country)
printed = set()
ulpart = soup.find_all("ul", {"class": breadcrumbs})
for unorder in ulpart:
div2 = soup.find_all("li", {"class": "breadcrumb_item "})
for listitem in div2[0:]:
country = soup.select_one("li.breadcrumb_item
a[onclick*=Country]").get_text(strip=True)
print.add(country)
这似乎行得通
我想在 for 循环中只打印一次特定的行,但是在一行中输入结果,它给出了四次相同的结果请帮助我如何在打印一行后停止 for 循环
这是完整的 html 和 python 代码以及此脚本的结果
<ul class="breadcrumbs" id="BREADCRUMBS">
<li class="breadcrumb_item " itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
<a class="breadcrumb_link" href="/Tourism-g191-United_States-Vacations.html" itemprop="url" onclick="ta.setEvtCookie('Breadcrumbs', 'click', 'Country', 1, this.href); ">
<span itemprop="title">United States</span>
</a>
<span class="separator">›</span>
</li>
.
.
.
.
ulpart = soup.find_all("ul", {"class": "breadcrumbs"})
for unorder in ulpart:
div2 = soup.find_all("li", {"class": "breadcrumb_item "})
for listitem in div2[0:]:
country = soup.select_one("li.breadcrumb_item a[onclick*=Country]").get_text(strip=True)
print(country)
这是此代码的结果,它打印了四次相同的结果
United State
United State
United State
United State
但我只想要一次这样的美国:
United State
printed_countries = list()
ulpart = soup.find_all("ul", {"class": "breadcrumbs"})
for unorder in ulpart:
div2 = soup.find_all("li", {"class": "breadcrumb_item "})
for listitem in div2[0:]:
country = soup.select_one("li.breadcrumb_item a[onclick*=Country]").get_text(strip=True)
if not country in printed_countries:
print(country)
printed_countries.append(country)
因为您使用的是无序列表,所以您可以使用 python 设置数据类型(如果您需要顺序,请使用列表):
printed = set()
ulpart = soup.find_all("ul", {"class": "breadcrumbs"})
for unorder in ulpart:
div2 = soup.find_all("li", {"class": "breadcrumb_item "})
for listitem in div2[0:]:
country = soup.select_one("li.breadcrumb_item a[onclick*=Country]").get_text(strip=True)
printed.add(country)
printed = set()
ulpart = soup.find_all("ul", {"class": breadcrumbs})
for unorder in ulpart:
div2 = soup.find_all("li", {"class": "breadcrumb_item "})
for listitem in div2[0:]:
country = soup.select_one("li.breadcrumb_item
a[onclick*=Country]").get_text(strip=True)
print.add(country)
这似乎行得通