如何网络抓取特定年份的谷歌新闻标题(例如2020年的新闻)

问题描述 投票:0回答:1

我一直在使用 Python 和 RSS feed 探索网络抓取技术,但我不确定如何将搜索结果缩小到 Google 新闻上的特定年份。理想情况下,我想检索特定年份(例如 2020 年)新闻文章的标题、发布日期和可能的摘要。使用下面提供的代码,我可以抓取当前数据,但如果我尝试查找特定年份的新闻,则该数据不可用。即使当我使用 Google 文章搜索框时,过滤器也只显示前一年的结果。但是,当我向下滚动时,我可以看到 2013 年和 2017 年的文章。有人可以为我提供一个 Python 脚本或有关如何解决此问题的指针吗?

这是我到目前为止所做的尝试:

import feedparser
import pandas as pd
from datetime import datetime

class GoogleNewsFeedScraper:
    def __init__(self, query):
        self.query = query

    def scrape_google_news_feed(self):
        formatted_query = '%20'.join(self.query.split())
        rss_url = f'https://news.google.com/rss/search?q={formatted_query}&hl=en-IN&gl=IN&ceid=IN%3Aen'
        feed = feedparser.parse(rss_url)
        titles = []
        links = []
        pubdates = []

        if feed.entries:
            for entry in feed.entries:
                # Title
                title = entry.title
                titles.append(title)
                # URL link
                link = entry.link
                links.append(link)
                # Date
                pubdate = entry.published
                date_str = str(pubdate)
                date_obj = datetime.strptime(date_str, "%a, %d %b %Y %H:%M:%S %Z")
                formatted_date = date_obj.strftime("%Y-%m-%d")
                pubdates.append(formatted_date)

        else:
            print("Nothing Found!")

        data = {'URL link': links, 'Title': titles, 'Date': pubdates}
        return data

    def convert_data_to_csv(self):
        d1 = self.scrape_google_news_feed()
        df = pd.DataFrame(d1)
        csv_name = self.query + ".csv"
        csv_name_new = csv_name.replace(" ", "_")
        df.to_csv(csv_name_new, index=False)


if __name__ == "__main__":
    query = 'forex rate news'
    scraper = GoogleNewsFeedScraper(query)
    scraper.convert_data_to_csv()
python web-scraping rss google-news
1个回答
0
投票

您可以在 rss_url 中使用日期过滤器。 将查询部分修改为以下格式

格式:

q=query+after:yyyy-mm-dd+before:yyyy-mm-dd

示例: https://news.google.com/rss/search?q=forex%20rate%20news+之后:2023-11-01+之前:2023-12-01&hl=en-IN&gl=IN&ceid= IN:en

上面的 URL 返回 2023 年 11 月 1 日至 2023 年 12 月 1 日期间发布的与 外汇汇率新闻 相关的文章。

请参阅这篇文章了解更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.