【发布时间】:2021-11-13 12:37:13
【问题描述】:
我想从Link 中提取新闻文章随着您不断向下滚动,旧文章不断出现。但我只想要过去 1 年的信息。如何设置过滤器?
【问题讨论】:
-
到目前为止你尝试过什么?在问题中发布相同的内容。
-
@pmadhu 我想不出任何办法来解决这个问题
标签: selenium web-scraping beautifulsoup
我想从Link 中提取新闻文章随着您不断向下滚动,旧文章不断出现。但我只想要过去 1 年的信息。如何设置过滤器?
【问题讨论】:
标签: selenium web-scraping beautifulsoup
像这样试试。
下面的代码滚动直到找到18 days ago。将条件更改为a year ago,当找到一年前的新闻时,循环将中断。
from selenium import webdriver
import time
driver = webdriver.Chrome(executable_path="path to chromedriver.exe")
driver.maximize_window()
driver.implicitly_wait(10)
driver.get("https://www.reuters.com/companies/AAPL.O")
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") == "18 days ago":
break
print(news[i].find_element_by_tag_name("a").get_attribute("innerText"))
i += 1
time.sleep(.5)
except:
pass
driver.quit()
【讨论】: