Как использовать Selenium+BeautifulSoup для получения данных из динамически создаваемых элементовPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как использовать Selenium+BeautifulSoup для получения данных из динамически создаваемых элементов

Сообщение Anonymous »

Первый вопрос по StackOverFlow. Я пытаюсь очистить веб-страницу fxstreet.com/news. Похоже, их новостная лента динамично выпускает статьи. BeautifulSoup не может собрать эту информацию, поэтому я решил использовать Selenium. Однако у меня возникли проблемы с использованием Selenium для доступа к отображаемым статьям.

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

import requests
from bs4 import BeautifulSoup
import re
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get('https://www.fxstreet.com/news?q=&hPP=17&idx=FxsIndexPro&p=0')

article = driver.find_element_by_link_text('/news')
for post in article:
print(post.text)
Я хотел бы создать парсер, который периодически проверяет наличие новых статей. Эти статьи будут иметь URL-адрес: https://www.fxstreet.com/news.. .(конечная точка).

Однако, когда я пытаюсь найти тег hrefs/'a', я получаю много ссылок по всему веб-сайту, но ни одна из них не является новостью. статьи, представленные в прямом эфире. Когда я просматриваю каждый элемент div, я получаю весь HTML-код:

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

                    [url=https://www.fxstreet.com/news/gbp-usd-upside-potential-limited-in-covid-19-uncertainties-202004021808]GBP/USD upside potential limited in COVID-19 uncertainties[/url]

[url=/author/ross-j-burland]Ross J Burland[/url]
 | 18:08 GMT


говорит мне, что оно где-то каким-то образом существует, но я совершенно не могу с ним взаимодействовать. Итак, как мне получить доступ к нужным мне ссылкам, если Selenium не может искать теги «a» или частичные ссылки? Я также попытался найти точную ссылку, используя:

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

elem = driver.find_elements_partial_link("news")

for element in elem:
print(element.get_attribute("innerHTML"))
Безрезультатно. Я также пробовал использовать явное и неявное ожидание. Спасибо.

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

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

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

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

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

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

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