Как заполнить форму из Excel с помощью Selenium и Panda в Python и вывести CSV - PullRequest
0 голосов
/ 09 октября 2019

Я пытаюсь заполнить форму на сайте почтовыми индексами в файле Excel с именем post.xlsx. Я успешно построил аналогичную версию в Excel VBA.

Как вы можете найти ниже

    Option Explicit
    ...

    While (Len(Range("A" & count)) > 0)

        Driver.Get "https://app.eservice.eld.gov.sg/voter/postalcodeenquiry.aspx"
        Driver.FindElementById("ctl00_ContentPlaceHolder1_txtPostalCode").SendKeys Range("A" & count)
        'Driver.FindElementByClass("recaptcha-checkbox-border").Click
        Driver.Wait 1000
        Driver.FindElementById("ctl00_ContentPlaceHolder1_btnCheck").Click

        On Error Resume Next

        Range("B" & count) = Driver.FindElementById("ctl00_ContentPlaceHolder1_lblEDDisplay").Text

        count = count + 1

    Wend

    Driver.Quit

End Sub

Вот копия листа - https://docs.google.com/spreadsheets/d/1RHElfhQb12eSamsP7U9CzlCW68DhJUNWDu26IDrqiSc/edit?usp=sharing

Теперь яЯ хочу, чтобы версия Python этого кода работала и, возможно, выводил результат в csv. Я понимаю, что селен и панда могут справиться с работой, но пока не могу найти способ заставить их работать. Вот код Python, который я пытаюсь.

import selenium
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.wait import WebDriverWait
import pandas as pd

# Import the driver of Chrome and target url
driver  = webdriver.Chrome()
driver.get('https://app.eservice.eld.gov.sg/voter/postalcodeenquiry.aspx')

df = pd.read_excel('C:\Users\user\Desktop\webscrapy\post.xlsx')

sheet_postals = df['Postals']

for postal in sheet_postals:
driver.find_element_by_id("ctl00_ContentPlaceHolder1_txtPostalCode").send_keys(year)
driver.find_element_by_id("ctl00_ContentPlaceHolder1_btnCheck").click()
    #print in csv

Любая помощь, чтобы заставить этот код Python работать, заполнив форму с почтовыми кодами и выведя CSV, будет высоко оценена.

...