首页 > 解决方案 > 如何使用 selenium python 根据日期提取新闻文章标题?

问题描述

我正在从这里抓取标题的 URL 和它们的日期 所以这给了我所有的 URL 和它们出现在页面上的。各个网址上的日期,即发布日期,如 2021 年 6 月 24 日、2021 年 6 月 21 日等。我只想抓取从今天起 6 天前发布的那些 URL。即如果网页有 20 个在日期发布的标题 URL,我只想抓取从 2021 年 8 月 4 日到今天发布的那些网站。所以在我的输出中,只有从 8 月 4 日到今天的日期。

这是我从网站中提取所有 URL 标题及其日期的代码

    websites = ['https://www.thespiritsbusiness.com/tag/rum/']
    for spirits in websites:
        browser.get(spirits)
        time.sleep(1)

        news_links = browser.find_elements_by_xpath('//*[@id="archivewrapper"]/div/div[2]/h3')
        n_links = [ele.find_element_by_tag_name('a').get_attribute('href') for ele in news_links]
        dates = browser.find_elements_by_xpath('//*[@id="archivewrapper"]/div/div[2]/small')
        n_dates = [ele.text for ele in dates]
        print(n_links)
        print(n_dates)

我怎样才能做到这一点?请帮我!提前致谢。

标签: pythonpython-3.xseleniumselenium-webdriverweb-scraping

解决方案


无论日期如何,我都会首先收集所有链接,然后将它们分组。下面的代码也是如此。

driver.implicitly_wait(10)
driver.get("https://www.thespiritsbusiness.com/category/news/")
news = driver.find_elements_by_xpath("//div[@id='archivewrapper']")
newsdata = {}
for ne in news:
    datechk = ne.find_element_by_tag_name("small").get_attribute("innerText").replace(' ','')
    link = ne.find_element_by_xpath("//div[@id='archivewrapper']//h3/a").get_attribute("href")
    if datechk in newsdata:
        newsdata[datechk].append(link)
    else:
        newsdata[datechk] = [link]
dates = "August{}th,2021"
for i in range(4,12):
    if dates.format(i) in newsdata:
        print(("{} : {}".format(dates.format(i),newsdata[dates.format(i)])))
driver.quit()

和输出:

August4th,2021 : ['https://www.thespiritsbusiness.com/2021/08/cannabis-drinks-market-to-reach-us6bn-by-2031/', 'https://www.thespiritsbusiness.com/2021/08/cannabis-drinks-market-to-reach-us6bn-by-2031/', 'https://www.thespiritsbusiness.com/2021/08/cannabis-drinks-market-to-reach-us6bn-by-2031/']
August6th,2021 : ['https://www.thespiritsbusiness.com/2021/08/cannabis-drinks-market-to-reach-us6bn-by-2031/', 'https://www.thespiritsbusiness.com/2021/08/cannabis-drinks-market-to-reach-us6bn-by-2031/']

推荐阅读