Как очистить абзац для этой ссылки Reuters

#python #selenium #web-scraping

Вопрос:

Я хочу извлечь всю новостную статью из ссылок, подобных этой: https://www.reuters.com/world/europe/navalny-allies-accuse-telegram-censorship-russian-election-2021-09-18/ Ниже приведен код для получения этих ссылок, теперь для каждой ссылки я хочу получить статью. Я не могу извлечь XPath, чтобы иметь возможность сделать это. Абзац разделен на несколько тегов <p>, и я не уверен, как с этим справиться

 !pip install selenium
!apt-get update 
!apt install chromium-chromedriver

from selenium import webdriver
import time
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
driver = webdriver.Chrome('chromedriver',chrome_options=chrome_options)
driver.maximize_window()
driver.implicitly_wait(10)
driver.get("https://www.reuters.com/companies/AAPL.O")
links=[]
i=0
try:
    while True:
        news = driver.find_elements_by_xpath("//div[@class='item']")
        driver.execute_script("arguments[0].scrollIntoView(true);", news[i])
        if news[i].find_element_by_tag_name("time").get_attribute("innerText") == "a year ago":
            break
        links.append(news[i].find_element_by_tag_name("a").get_attribute("href"))
        i  = 1
        time.sleep(.5)
except:
    pass

driver.quit()

#links
 

Ответ №1:

Попробуйте этот xpath.

 //div[contains(@class,'Article__container')]/div/div/div[2]/p
 
 #This would give all the paragraphs.
paragraphs = driver.find_elements_by_xpath("//div[contains(@class,'Article__container')]/div/div/div[2]/p")
for para in paragraphs:
    print(para.get_attribute("innerText")