Селен: Невозможно поместить очищенные элементы в CSV - PullRequest
1 голос
/ 09 апреля 2020

Я успешно удалил данные с сайта. Ну, это возвращает мне ошибку.

Я использовал "Title1" : pd.Series([ ele for ele.text in elements ]) для хранения данных в CSV-файле, но возвращает мне ошибку, что name "ele" не определено, когда я использую элемент для .text метода.

Когда я удаляю .text, тогда он работает нормально. Но хранит идентификаторы, которые не в форме текста, поэтому я использовал .text. Что происходит с использованием .text?

Вот мой код:

element = WebDriverWait(driver, 5).until(
    EC.presence_of_element_located((By.CSS_SELECTOR, x))
)
elements = driver.find_elements_by_css_selector(x)

element = WebDriverWait(driver, 5).until(
    EC.presence_of_element_located((By.CSS_SELECTOR, y))
)
elements2 = driver.find_elements_by_css_selector(y)

element = WebDriverWait(driver, 5).until(
    EC.presence_of_element_located((By.CSS_SELECTOR, z))
)
elements3 = driver.find_elements_by_css_selector(z)

df = pd.DataFrame({
    "Title1" : pd.Series([ ele for ele.text in elements ]),
    "Title2" : pd.Series([ ele2 for ele2.text in elements2 ]),
    "Title3" : pd.Series([ ele3 for ele3.text in elements3 ]),
})

df.to_csv(csv_file_location,
          index=False, mode='a', encoding='utf-8')

Просто удалите текст и убедитесь, что он работает нормально и хранит все Данные в CSV, но не в виде текста. Любая помощь будет оценена ...

1 Ответ

1 голос
/ 09 апреля 2020

Этот метод .text() просто используется для извлечения массива / списка элементов. В этой строке, например,

elements = driver.find_elements_by_css_selector(x)

Вот почему ваш l oop pd.Series([ ele for ele.text in elements ]), завершается ошибкой, поэтому удаление текста выполняется нормально, как и ожидалось.

Так что измените это

pd.Series([ ele for ele.text in elements ])

на это

pd.Series([ ele.text for ele in elements ])

Это означает, что сначала он получит ele сначала в elements, а внутри него получит text атрибут ele.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...