Как очистить актуальные данные с веб-сайта в режиме без заголовка chrome python - PullRequest
0 голосов
/ 26 мая 2020
from selenium.webdriver import Chrome
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys

opts = Options()
opts.set_headless()
assert opts.headless  # Operating in headless mode
browser = Chrome(executable_path=r"C:\Users\taksh\AppData\Local\Programs\Python\Python37-32\chromedriver.exe", options=opts)
browser.implicitly_wait(3)
browser.get('https://ca.finance.yahoo.com/quote/AMZN/profile?p=AMZN')

results = browser.find_elements_by_xpath('//*[@id="quote-header-info"]/div[3]/div/div/span[1]')
print(results)

И я возвращаюсь:

[<selenium.webdriver.remote.webelement.WebElement (session="b3f4e2760ffec62836828e62530f082e", element="3e2741ee-8e7e-4181-9b76-e3a731cefecf")>]

На самом деле, какой селен очищать, так это цена акции. Я думал, что делаю это правильно, потому что это обнаружит элемент, когда я использовал селен на Chrome без режима без головы. Как я могу очистить фактические данные с веб-сайта в режиме без заголовка?

Ответы [ 2 ]

0 голосов
/ 26 мая 2020

Это может быть один и тот же xpath и локатор, появляющиеся несколько раз в html. Итак, если мы можем поместить этот код в try-catch при проверке в режиме без головы.

Режим без головы в основном будет сканировать HTML только для лучшей отладки Попробуйте - другую версию xpath, например, переход к его родительскому элементу span и затем пересекая его

0 голосов
/ 26 мая 2020

Вам необходимо дополнительно извлечь данные после получения всех элементов в списке.

results = browser.find_elements_by_xpath('//*[@id="quote-header-info"]/div[3]/div/div/span[1]')

for result in results:
    print(result.text)

Это отобразит все данные, имеющиеся в списке.

...