#python-3.x #list
#python-3.x #Список
Вопрос:
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 при каждом вызове функции.
Ответ №1:
Правильный способ сделать это так.
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)