gpt4 book ai didi

python - 如何改变Python、Selenium中的执行控制

转载 作者:行者123 更新时间:2023-12-01 00:07:34 24 4
gpt4 key购买 nike

我在 Python 控制流方面遇到问题。下面是我尝试使用 selenium 从网页获取一些数据的场景。

这是我正在使用的代码的示例部分。我正在从数据库中获取 URL 列表。因此,对于每个 URL,chrome 浏览器(同一浏览器)都会打开并搜索传递的 URL 页面。

如果 URL 页面上没有任何内容或没有详细信息,即当变量“长度”为零时,我已通过向 URL 添加“出售”来修改 URL 值,并且现在我想中断执行程序并将这个新 URL 传递到此处的“browser.get(url)”,而不从 for 循环中获取下一个元素。

for row in urls:
url=str(row)

browser.get(url)

names = browser.find_elements_by_xpath("//span[@class='pymv4e']")
product = [x.text for x in names]
filtered = [x for x in product if len(x.strip()) > 0]
length=(len(filtered))

if length ==0 :
url=url+ '+sell'

最佳答案

很简单:将代码的相关部分提取到专用函数中,然后重新调用该函数:

def get_products(url):
browser.get(url)
names = browser.find_elements_by_xpath("//span[@class='pymv4e']")
# simplified the filtering
# note that python objects have a "truth" value,
# and that empty strings and empty lists have a False value
product = [x.text for x in names if x.text.strip()]


for row in urls:
url = str(row) # XXX why do you need this ???
products = get_products(url)
if not products:
url += '+sell'
products = get_products(url)

关于python - 如何改变Python、Selenium中的执行控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59859217/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com