最初はプログラミングでは新機能がありますが、私のコードはこれまでのところうまく機能していますが、自動化する方法を理解したいので、私はPythonコードを更新する必要はありません。プログラムを何度も繰り返します。Loop for Selenium and Python
プログラムは、特定の検索パラメータを使用して1年間にわたって「計画権限データ」をスクラップし、次にopenpyxlを使用してこれをExcelファイルに書き込みます。私は何をしようとしていることである
---
- 自動的に10年間にわたって検索
- が別のタブで、毎年を持っている(まだ年の検索によって年間でそれをしなければなりません)優れた
いずれかの問題について支援していただければ幸いです。その質問のために必要でなかったほとんどのジャンクコードを取り除こうとしました。
は、ここで私はプログラムpython3 UrlScript.py
Url to grab information off of
mainPage = "http://edevelopment.falkirk.gov.uk/online/search.do?action=advanced"
from selenium import webdriver
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from openpyxl import Workbook
from openpyxl import load_workbook
description = ["window"]
ApplicationType = [0,11,12,31,32,33,46,47,61]
#DecisionType
startDate = "01/01/2012"
endDate = "31/12/2012"
error = False
year = 2012
#Excel
wb = load_workbook('/Users/Caitlyn/Desktop/Program/Planning.xlsx')
sheet = wb.get_sheet_by_name('Data')
rowIndex = 2
columnIndex = 1
driver = webdriver.Chrome('/Users/Caitlyn/Downloads/chromedriver')
driver.get(mainPage)
# placing each description here
sbox = driver.find_element_by_id("description")
sheet.cell(row=rowIndex, column=columnIndex, value=description[0])
columnIndex = columnIndex + 1
sbox.send_keys(description[0])
# here is where you will cycle through dates
sbox = driver.find_element_by_id("applicationDecisionStart")
sbox.send_keys(startDate)
sbox = driver.find_element_by_id("applicationDecisionEnd")
sbox.send_keys(endDate)
sheet.cell(row=rowIndex, column=columnIndex, value=year)
columnIndex = columnIndex + 1
if error:
resultsRow = rowIndex
while True:
column = driver.find_elements_by_class_name("searchresult")
pageResults = pageResults + len(column)
for element in column:
list = element.text.split("\n")
sheet.cell(row=rowIndex, column=columnIndex, value=list[0])
columnIndex = columnIndex + 1
sheet.cell(row=rowIndex, column=columnIndex, value=list[1])
columnIndex = columnIndex + 1
sheet.cell(row=rowIndex, column=columnIndex, value=list[2].split("|")[0])
columnIndex = columnIndex - 2
rowIndex = rowIndex + 1
try:
submit = driver.find_element_by_class_name("next")
submit.click()
pageIndex = pageIndex + 1
except NoSuchElementException:
break
columnIndex = columnIndex - 1
sheet.cell(row=resultsRow, column=columnIndex, value=pageResults)
columnIndex = columnIndex - 1
else:
columnIndex = columnIndex - 1
sheet.cell(row=rowIndex, column=columnIndex, value=0)
columnIndex = columnIndex - 1
rowIndex = rowIndex + 1
driver.execute_script("window.history.go(-%d)" % pageIndex)
error = False
columnIndex = columnIndex - 1
wb.save('/Users/Caitlyn/Desktop/Program/Planning.xlsx')
アドバイスをいただきありがとうございます。私はすべてを更新していくつもりです。 openpyxlメーリングリストにも感謝します:) –