首页 > 解决方案 > 获取下一个项目每个项目调用一个函数

问题描述

app = Flask(__name__)

options = webdriver.ChromeOptions()
options.add_argument('headless')
driver = webdriver.Chrome('C:/Users/msdfs/Downloads/cd79/chromedriver.exe', options=options)

driver.implicitly_wait(10)
links = ['http://www.dia.net/hottest/AllTime',
'http://www.dia.net/subcategory/ua7oawncuaxoa',
'http://www.dia.net/subcategory/ua7oawncuaxoa/test',
'http://www.edia.net/subcategory/ua7oawncuafou',
'http://www.dia.net/subcategory/ua7oawncuatla',
'http://www.dia.net/subcategory/ua7oawncuatla/testr',
'http://www.dia.net/subcategory/ua7oawncua7oc']

global go
go = iter(links)

@app.route('/')
def get_jokes():
    driver.get(next(go))
    facts = driver.find_elements_by_tag_name('p')
    mylist = []
    for fact in facts:
        mylist.append(fact.text)
    return render_template('facts.html', s=mylist)

每次调用函数时,如何让模板拉取 URL 列表中的下一个 URL?这种方法当然行不通。这是我尝试过的众多方法之一。澄清一下,每次调用函数时,列表索引都应该增加 1。

标签: python-3.xlist

解决方案


这样做的正确方法是这样。

app = Flask(__name__)

options = webdriver.ChromeOptions()
options.add_argument('headless')
driver = webdriver.Chrome('C:/Users/msdfs/Downloads/cd79/chromedriver.exe', options=options)

driver.implicitly_wait(10)
links = ['http://www.dia.net/hottest/AllTime',
'http://www.dia.net/subcategory/ua7oawncuaxoa',
'http://www.dia.net/subcategory/ua7oawncuaxoa/test',
'http://www.edia.net/subcategory/ua7oawncuafou',
'http://www.dia.net/subcategory/ua7oawncuatla',
'http://www.dia.net/subcategory/ua7oawncuatla/testr',
'http://www.dia.net/subcategory/ua7oawncua7oc']




curr_index = 0
@app.route('/')
def get_jokes():
    global curr_index
    driver.get(links[curr_index])
    facts = driver.find_elements_by_tag_name('p')
    curr_index += 1
    mylist = []
    for fact in facts:
        mylist.append(fact.text)
    return render_template('facts.html', s=mylist)

推荐阅读