Почему этот веб-скребок, использующий Selenium, не возвращает весь сайт?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему этот веб-скребок, использующий Selenium, не возвращает весь сайт?

Сообщение Anonymous »

Я пытался запрограммировать веб-скребок с Selenium в образовательных целях, который отображает данные фондового рынка из «The Wall Street Journal». Я хочу узнать количество растущих и снижающихся выпусков по этой ссылке: https://www.wsj.com/market-data/stocks/us
Мой вебскреб выглядит так:< /p>

Код: Выделить всё

import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager

options = webdriver.ChromeOptions()
options.add_argument("--headless")
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)

url = "https://www.wsj.com/market-data/stocks/us"
driver.get(url)

time.sleep(10)

try:
element = driver.find_element(By.XPATH, "/html/body/div/div/div/div/div[1]/div[2]/div/div[2]/table/tbody[1]/tr/td[2]")
data = element.text
print(f"Found data: {data}")
except Exception as e:
print(f"Error: {e}")

driver.quit()
Например, если я попытаюсь найти количество развивающихся выпусков на NYSE следующим образом:

Код: Выделить всё

element = driver.find_element(By.XPATH, “/html/body/div/div/div/div/div[1]/div[2]/div/div[2]/table/tbody[1]/tr/td[2]”)
Я получаю следующее сообщение об ошибке:

Код: Выделить всё

Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div/div/div/div/div[1]/div[2]/div/div[2]/table/tbody[1]/tr/td[2]"}
(Session info: chrome=131.0.6778.205); For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
Поэтому я попытался просмотреть все тело, чтобы узнать, есть ли у меня доступ к данным:

Код: Выделить всё

element = driver.find_element(By.XPATH, "//body")
Однако полный текст я получил только из шапки, раздела «Фондовые индексы» и раздела «Новости акций». Я не получил никакого контента из раздела «Дневник рынков» или других частей страницы.
Увеличение времени ожидания time.sleep(10) ничего не изменило.
Почему я Мне не показывают все тело?

Подробнее здесь: https://stackoverflow.com/questions/793 ... re-website
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»