【问题标题】:newsletter3k, am I did something wrong, author function did not pick up author in news articlenewsletter3k,我做错了什么吗,作者功能没有在新闻文章中选择作者
【发布时间】:2025-12-19 08:35:06
【问题描述】:

这是关于newspaper3k图书馆的作者功能。我有这个新闻 URL 列表。 >>>> article.authors”有时没有选择作者。一个例子在这里:authors missing

【问题讨论】:

    标签: python parsing web author newspaper3k


    【解决方案1】:

    Newspaper3k 使用 PythonBeautiful Soup 来提取项目,例如来自新闻网站的作者姓名。 Newspaper3k 查询的 标签 是在 Newspaper3k 源代码中预定义的。 Newspaper3k 尽最大努力从新闻网站上的这些标准标签 中提取内容。

    并非所有新闻来源的结构都相同,因此 Newspaper3k 会遗漏某些内容,因为标签(例如,作者)将在 HTML 中的不同位置结构。

    例如 Newspaper3k 在这些 标签 中查找作者姓名:

    VALS = ['author', 'byline', 'dc.creator', 'byl']

    标签dc.creator 总是位于新闻源的META 标签部分。如果您的新闻来源有不同的作者标签,​​例如《洛杉矶时报》使用的 article.author,,那么您必须像这样查询该标签:

    article_meta_data = article.meta_data
    article_author = {value for (key, value) in article_meta_data['article'].items() if key == 'author'}
    

    我在我的newspaper3K overview document 中讨论了许多这些收获问题,我已经在我的Github page 上分享了这些问题。

    【讨论】:

    • 是的,我在那里:VALS = ['author', 'byline', 'dc.creator', 'byl'] 谢谢你的概述文件,它是最新的,我去阅读它。一个自发的问题,给VALS添加一个标签怎么样?作者所在的位置:
    • 我的观察,在某些网页中,作者姓名出现在第一个“by”字之后(在实际文本中,可能不在页面源中的第一个“by”字之后)。我想知道这是否可能是这样:在*.com中使用文本文件中的正则表达式在Python中查找特定单词之后的单词
    • 我不控制Newspaper3k,所以我不能修改源代码。您必须修改代码以使用 Newspaper3k 来正确获取元素。向 Newspaper3k 所有者提出问题以在源代码中添加新标签。
    • 我也没有控制报纸3k,我只是通过在Github分叉来询问这样的可能性。我在“报纸3K概述文档”中查看了您的精彩示例,请告诉我在哪里可以找到“bbc_dictionary.items()”和“cnn_dictionary.items()”,抱歉它显示错误消息。
    • 已经有关于分叉包的讨论,因为它自 2016 年以来一直没有更新。关于“bbc_dictionary.items()”和“cnn_dictionary.items()”。这些项目仅链接到我的代码示例,作为我正在使用的变量的命名约定的一部分。我刚刚从包含这些变量的概览文档中测试了我的示例代码,并且示例运行时没有出现错误。