Почему не работает функция replace ()? - PullRequest
1 голос
/ 13 апреля 2020

Я очищаю веб-сайт с помощью Selenium. Когда я получаю текст списка элементов (заголовков), он печатает вот что:

    ['Countyarrow_upward Reportingarrow_upward Totalarrow_upward Bennet (D)arrow_upward Biden (D)arrow_upward Bloomberg (D)arrow_upward Booker (D)arrow_upward Boyd (D)arrow_upward Buttigieg (D)arrow_upward 
Castro (D)arrow_upward De La Fuente III (D)arrow_upward Delaney (D)arrow_upward Ellinger (D)arrow_upward Gabbard (D)arrow_upward Greenstein (D)arrow_upward Klobuchar (D)arrow_upward Patrick (D)arrow_upw
ard Sanders (D)arrow_upward Sestak (D)arrow_upward Steyer (D)arrow_upward Warren (D)arrow_upward Williamson (D)arrow_upward Yang (D)arrow_upward']

Я, очевидно, хочу только имена и "(D)", поэтому я попытался использовать замену ( ) функция для замены Countyarrow_upward Reportingarrow_upward Totalarrow_upward и arrow_upward пустой строкой. Вот мой код:

headers = driver.find_elements_by_xpath('//*[@id="content"]/div/div[3]/div/div[2]/div/div[2]/div/div[2]/div[1]/div/table/thead/tr[1]')
    header_text = []
    for i in headers:
        header_raw_text = i.text
        header_raw_text.replace("Countyarrow_upward Reportingarrow_upward Totalarrow_upward ", "")
        header_raw_text.replace("arrow_upward ", "")
        header_text.append(header_raw_text)

    print(header_text)

Когда я запускаю этот код, я получаю то же самое выше, и функция replace () не работает.

Помощь очень ценится!

1 Ответ

2 голосов
/ 13 апреля 2020

строк являются неизменяемыми. поэтому header_raw_text.replace() не изменяет саму строку. Вам нужно переназначить результат после замены.

header_raw_text = header_raw_text.replace("arrow_upward ", "")
...