Как извлечь данные из тега?

Здравствуйте! Я парсингую сайт, который содержит таблицу с данными. У меня возникла проблема: я смог получить всю информацию, кроме одной даты. Вот HTML-код того элемента, который мне нужен: <br/><pre><code class="html">&lt;td _ngcontent-serverapp-c76="" class="text-center"&gt;
    &lt;app-tooltip _ngcontent-serverapp-c76="" _nghost-serverapp-c75=""&gt;
        &lt;div _ngcontent-serverapp-c75="" class="unselectable" style="opacity: 0; height: 0px; color: white !important;"&gt;
            &lt;div _ngcontent-serverapp-c75="" id="0.9803359351245351" style="font-weight: normal; display: none;"&gt;
                27.08.2024 19:50
            &lt;/div&gt;
        &lt;/div&gt;
        &lt;div _ngcontent-serverapp-c75=""&gt;
            &lt;p _ngcontent-serverapp-c75="" ngx-clamp="" style="overflow-wrap: break-word; font-weight: normal; overflow: hidden; text-overflow: ellipsis; -webkit-box-orient: vertical; display: -webkit-box;"&gt;
                27.08.2024 19:50
            &lt;/p&gt;
            &lt;div _ngcontent-serverapp-c75=""&gt;
                &lt;!----&gt;
            &lt;/div&gt;
        &lt;/div&gt;
        &lt;!----&gt;
        &lt;!----&gt;
        &lt;!----&gt;
        &lt;!----&gt;
        &lt;!----&gt;
    &lt;/app-tooltip&gt;
    &lt;!----&gt;
    &lt;!----&gt;
    &lt;!----&gt;
    &lt;!----&gt;
    &lt;!----&gt;
&lt;/td&gt;</code></pre><br/><br/> Вот код, который я использую: <br/><pre><code class="python">from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

url = "https://etender.gov.az/main/competitions"

driver = webdriver.Chrome()
driver.get(url)

def get_page_info():
    names_a
  • 27 августа 2024 г. 19:44
Ответы на вопрос 1
Чтобы извлечь дату из указанного HTML-кода, вы можете использовать Selenium для взаимодействия с веб-страницей. В вашем случае и дата, которую вы хотите извлечь, находится в теге `<p>` внутри тега `<app-tooltip>`. 

Вот пример того, как вы могли бы модифицировать ваш код, чтобы извлечь дату:

```python
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

url = "https://etender.gov.az/main/competitions"

# Настройка драйвера
driver = webdriver.Chrome()
driver.get(url)

def get_page_info():
    # Ожидание загрузки элементов на странице
    try:
        # Пример XPath для извлечения данных
        # Обратите внимание, что вам нужно корректно выбрать XPath, чтобы получить нужный элемент
        date_element = WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.XPATH, "//app-tooltip//p"))
        )
        # Извлечение текста даты
        date_text = date_element.text
        return date_text
    except Exception as e:
        print(f"Произошла ошибка: {e}")
    finally:
        driver.quit()

date = get_page_info()
print("Дата:", date)
```

### Объяснение:

1. **Импорт необходимых библиотек**: Вы импортируете библиотеки `webdriver`, `By`, `WebDriverWait`, и `expected_conditions`, которые вам нужны для работы с Selenium.

2. **Настрока драйвера**: Вы инициализируете Chrome WebDriver и открываете нужный URL.

3. **Определение функции `get_page_info`**: 
   - Здесь вы используете `WebDriverWait` для ожидания загрузки элемента с помощью `EC.presence_of_element_located`. Вам нужно передать правильный XPath, чтобы получить `<p>` внутри `<app-tooltip>`.
   - После нахождения элемента вы извлекаете текст и возвращаете его.

4. **Закрытие драйвера**: Используется `driver.quit()` в блоке `finally`, чтобы закрыть браузер независимо от того, произошла ошибка или нет.

### Замечания:

- Убедитесь, что XPath, который вы используете, соответствует структуре HTML-файлов на сайте. Вы можете использовать инструменты разработчика (например, Chrome DevTools), чтобы проверить путь к нужному элементу.
- Проверьте, правильно ли загружена страница и виден ли элемент, когда вы выполняете скрипт, так как некоторые данные могут загружаться динамически через JavaScript.

Этот код должен помочь извлечь информацию из указанного вами элемента.
Похожие вопросы