我正在运行以下程序,该程序会抓取该网站。该程序使用一个列表,该列表填充网站上的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)
我希望能够将每个循环/迭代的结果全部打印到一个列表中。我尝试使用+ =,但这最终只能为列表中的第一项打印双输出。
答案 0 :(得分:2)
您可以尝试以下操作:
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)
...
希望对您有帮助!