В настоящее время я передаю одно ключевое слово в поле поиска и нажимаю кнопку поиска с помощью селена. Таким образом я получаю правильную страницу. Ниже приведен мой рабочий код для одного ключевого слова.
page = driver.get('my_url')
searchbox = driver.find_elements_by_name('searchterm')[1]
#pass search keywords here
searchbox.send_keys('key1') # single keyword passed
button = driver.find_element_by_xpath("//div[contains(@class, 'submit-btn')]")
button.click()
"""
Extract data from links
"""
div = driver.find_elements_by_class_name('search-result')
links_list = []
for tags in div:
links = (tags.find_elements_by_css_selector('a'))
for elem in links:
links_list.append(elem.get_attribute('href'))
Однако я хочу передать список ключевых слов, чтобы код выполнялся для каждого элемента в списке. Например, если у меня есть список
keys = ['key1', 'key2', 'key3', ...]
for key in keys:
page = driver.get('my_url')
searchbox = driver.find_elements_by_name('searchterm')[1]
#pass search keywords here
searchbox.send_keys(key) # single keyword passed
button = driver.find_element_by_xpath("//div[contains(@class, 'submit-btn')]")
button.click()
"""
Extract data from links
"""
div = driver.find_elements_by_class_name('search-result')
links_list = []
for tags in div:
links = (tags.find_elements_by_css_selector('a'))
for elem in links:
links_list.append(elem.get_attribute('href'))
Как передать следующее ключевое слово в списке в качестве поискового запроса и выполнить те же операции? Очевидно, я пытался использовать цикл for для перебора списка ключевых слов, но это не работает, так как результаты дают мне результаты поиска только по первому ключевому слову в списке.