Python веб-очистка - невозможно отобразить js содержимое - PullRequest
0 голосов
/ 09 апреля 2020

Старый скрипт работал до вчерашнего дня. В источнике страницы он использовал для отображения веб-контента, например, «IssuesTraded 3,037 3,025 3,030», но не больше .. не могу понять, что изменилось ..

browser = webdriver.Chrome(executable_path=r"C:/Windows/chromedriver.exe")

urlpage = 'https://www.wsj.com/market-data/stocks/marketsdiary'
browser.get(urlpage)
results = browser.find_elements_by_xpath("//*[@id='root']//*[@class='style--grid--3gzjbqou ']")

# print('Number of results', len(results))
data = []
for result in results:
    data.append(result.text)

data = [x.split("\n") for x in data]
data = [y for x in data for y in x]

1 Ответ

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

Похоже, вы связались с именем класса, которое может динамически меняться:

results = browser.find_elements_by_xpath("//*[@id='root']//*[@class='style--grid--3gzjbqou ']")

Возможно, они обновили приложение, поэтому 3gzjbqou больше не существует. Вместо того, чтобы ссылаться на полное имя класса, вы можете сделать этот локатор более стабильным, удалив 3gzjbqou piece и только ссылку на часть этого класса.

Так что попробуйте эту строку вместо вашей для поиска results:

results = browser.find_elements_by_xpath("//*[@id='root']//*[contains(@class, 'style--grid')]")

Надеюсь, это поможет, удачи!

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