Newb ie Вопрос Python: Как поместить данные, очищенные с помощью селена, в массив? - PullRequest
0 голосов
/ 08 февраля 2020

Пожалуйста, помогите, я использую селен, чтобы вычистить с веб-сайта, однако, скребок собирает элементы в списке. Я хотел бы, чтобы это был массив, чтобы я мог сохранять значения построчно в базе данных MySQL. Список не позволяет мне получить доступ к значению в строках и столбцах (то есть строка 1 столбец 1, строка 2 столбец 2). Любая помощь будет принята с благодарностью. Мой код ниже:

from selenium import webdriver as wd
from selenium.webdriver.chrome.options import Options as Op
import mysql.connector

mydb = mysql.connector.connect(
  host="192.168.1.90",
  user="someUsrname",
  passwd="somePwd",
  database="pollution"
)

cursor  = mydb.cursor()

url ="https://craz.ca/monitoring/calgary-central/"

def ce():
    ce_options = Op()
    #ce_options.add_argument("--disable-gpu") # windows only
    # ce_options.add_argument("--no-sandbox) # linux only
    #ce_options.add_argument("--headless")
    ce_driver = wd.Chrome(options=ce_options)
    ce_driver.get(url)
    jsv_ce = ce_driver.find_element_by_link_text("Tabular Data")
    jsv_ce.click()
    print("Clicked the button")

    ce_no = ce_driver.find_elements_by_xpath("""//*[@id="tableDisplay"]/table/tbody/tr/td[2]""")

    sql = """INSERT INTO yyc_central (NO) VALUES (%s)"""

    var = 1
    rem = 1


    while var < 5: 
        ce_no.pop(0)

    print("Deleted" + str(var) + "Value")
    var += 1

    while rem < 51:

        ce_no.remove('NaN')
        rem += 1

    print(ce_no[3].text)   


    for i in ce_no:
        cursor.execute(sql, (i.text,))
        print("Inserting data:" + i.text)





ce()
mydb.commit()
mydb.close()
...