Вывод текста в единый список с помощью веб-скребка Selenium for loop - PullRequest
0 голосов
/ 26 ноября 2018

Я запускаю следующую программу, которая очищает этот сайт.Программа использует список, который заполняет 3 поля поиска на сайте, а затем печатает текст выбранной страницы.Он делает это снова и снова, пока list_2.txt не закончится.

Вот код:

list_2 = [['7711564', '14', '93'], ['0511442', '7', '27']]

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep


driver = webdriver.Firefox()
driver.get("https://www.airdrie.ca/index.cfm?serviceID=284")

for query in list_2:

   driver.find_element_by_name("whichPlan").send_keys(query[0])
   driver.find_element_by_name("whichBlock").send_keys(query[1])
   driver.find_element_by_name("whichLot").send_keys(query[2])

   driver.find_element_by_name("legalSubmit").click()
   sleep(3)

   text_element = driver.find_elements_by_xpath("//div[@class='datagrid']")
   text_element2 =
   driver.find_elements_by_xpath("//table[@class='quickkey_tbl ']")

   txt = [x.text for x in text_element]
   print(txt, '\n')
   txt2 = [x.text for x in text_element2]
   print(txt2, '\n')

   driver.back()
   driver.refresh()
   sleep(2)

Я хочу иметь возможность печатать ALL результаты каждого цикла / итерации в одном списке.Я попытался использовать + =, но в итоге получился двойной вывод только для первого элемента в моем списке.

1 Ответ

0 голосов
/ 26 ноября 2018

Вы можете попробовать что-то вроде этого:

results_list = []

for query in list_2:
   ...

   txt = [x.text for x in text_element]
   print(txt, '\n')
   txt2 = [x.text for x in text_element2]
   print(txt2, '\n')
   results_list.append(txt + txt2)
   ...

Надеюсь, это поможет вам!

...