当我遇到特定的“if”条件时,如何跳过一轮“for循环”并继续下一轮?

Posted

技术标签:

【中文标题】当我遇到特定的“if”条件时,如何跳过一轮“for循环”并继续下一轮?【英文标题】:How can I skip one round of "for loop" and continue the next round when I meet a specific "if" condition? 【发布时间】:2016-12-27 07:21:55 【问题描述】:

我正在为this 网址开发一个网络爬虫,但遇到了一个问题。

我尝试做的是爬取每个二手车库存数据列表,如果“价格”中每个数据的第 4 列有“图像”数据(粉红色图像表示“售罄”) "标签,我将跳过该列表并继续爬取下一个股票数据。

(我上面的意思是跳过下面的整个代码,开始下一轮“for循环”。“继续”跳过唯一的“if”函数,继续运行下面的代码。)

下面是我的代码

from bs4 import BeautifulSoup
import urllib.request

URL=http://www.bobaedream.co.kr/cyber/CyberCar.php?gubun=I&page=20
res = urllib.request.urlopen(URL)
html = res.read()
soup = BeautifulSoup(html, 'html.parser')
table = soup.find('table', class_='cyber')

# 50 lists per each page
links = []
for p in range(50):

    #Car_Price
    car_price=table.find_all('td', class_='price')
    if car_price[p].find('em').text:
        car_price_confirm = car_price[p].find('em').text
    elif car_price[p].find('em').find('img'):
        pass

    carinfo = table.find_all('td', class_='carinfo')
    carinfo_title = carinfo[p].find('a', class_='title').text
    links.append(carinfo[p].find('a')['href'])

    print(p+1, car_price_confirm, link[p])

【问题讨论】:

请不要在收到答案后完全更改您的问题。如果需要,请提出另一个问题。 【参考方案1】:

您正在寻找continue。 它完全符合您的要求。

例如,打印不会为对运行。 继续跳转到下一个迭代:

for i in range(5):
    if i % 2 == 0:
        continue
    print(i)

# Do not print evens
1
3

This问题也很有帮助!

【讨论】:

感谢您的回复。但我的意思是跳过下面的整个代码并开始下一轮“for循环”。 “继续”跳过唯一的“if”函数并继续运行以下代码。 感谢您的评论,我想我想出了跳过并重新启动“for循环”的问题。但是我从该代码中遇到了另一个问题。你介意帮我解决这个问题吗? 你完全改变了问题,我认为这是不对的。至少你试图找出错误是什么?【参考方案2】:

编辑:继续跳过整个迭代。它对 if 语句没有影响。检查您的代码。

Python 中的 continue 语句将控制权返回到 while 循环的开头。 continue 语句拒绝当前循环迭代中的所有剩余语句,并将控件移回循环顶部。

要跳过当前 for 循环的其余部分,请使用 continue 语句。

for p in range(50):
    car_price=table.find_all('td', class_='price')

    if car_price[p].find('em').find('img'):
        continue

    ...

【讨论】:

感谢您的评论,我想我想出了跳过并重新启动“for循环”的问题。但是我从该代码中遇到了另一个问题。你介意帮我解决这个问题吗?

以上是关于当我遇到特定的“if”条件时,如何跳过一轮“for循环”并继续下一轮?的主要内容,如果未能解决你的问题,请参考以下文章

如果if条件满足,如何跳转到for循环中的特定位置?

Python:如果条件为真,则跳过 For 循环中的迭代

单击特定按钮时如何跳过验证?

Visual Studio 跳过多个 if 语句?

Vue-if 条件不起作用。 if-Else 块似乎被跳过

如何通过/跳过管道取决于特定条件