从网页中提取发布日期

date-guesser的Python项目详细描述


Build StatusCoverage

从网页中提取出版日期的库,以及准确度的度量。 这是作为mediacloud project的一部分产生的,以便从内容中准确地提取日期。

安装

库可用on PyPI,可以使用

pip install date_guesser

快速启动

日期猜测器同时使用url和html来工作,并使用一些启发式方法来确定许多可能的日期中哪一个可能是最好的。

fromdate_guesserimportguess_date,Accuracy# Uses url slugs when availableguess=guess_date(url='https://www.nytimes.com/2017/10/13/some_news.html',html='<could be anything></could>')#  Returns a Guess object with three propertiesguess.date# datetime.datetime(2017, 10, 13, 0, 0, tzinfo=<UTC>)guess.accuracy# Accuracy.DATEguess.method# 'Found /2017/10/13/ in url'

如果有两个值得信赖的日期来源,date_guesser更倾向于更精确的来源

html='''
    <html><head>
    <meta property="article:published" itemprop="datePublished" content="2017-10-13T04:56:54-04:00" />
    </head></html>'''guess=guess_date(url='https://www.nytimes.com/2017/10/some_news.html',html=html)guess.date# datetime.datetime(2017, 10, 13, 4, 56, 54, tzinfo=tzoffset(None, -14400))guess.accuracyisAccuracy.DATETIME# True

但是date_guesser不会被更准确、更不可信的信息来源误导

html='''
    <html><head>
    <meta property="og:image" content="foo.com/2016/7/4/whatever.jpg"/>
    </head></html>'''guess=guess_date(url='https://www.nytimes.com/2017/10/some_news.html',html=html)guess.date# datetime.datetime(2017, 10, 15, 0, 0, tzinfo=<UTC>)guess.accuracyisAccuracy.PARTIAL# True

未来工作

语言

这部代码在国外新闻来源上做得很差。这一页是乌克兰的,上面有一个日期 非乌克兰人可以识别,但未提取:

importrequestsguess=guess_date(url='https://www.dw.com/uk/коментар-націоналізм-родом-зі-східної-європи/a-42081385',html=requests.get(url).text)guess.date# Noneguess.accuracyisAccuracy.NONE# Trueguess.method=='Did not find anything'# True

鲁莽模式

我们跟踪提取日期的准确性,但不跟踪提取日期的可信度 日期准确。这可能是在给定特定用例的情况下进行更多优化的一种方法。例如,一个 我们所采用的策略not是我们所识别的所有日期模式的正则表达式,因为这也太过分了 容易出错。在某些情况下,这种方法可能比返回None更好。

性能

我们使用从mediacloud系统中的四个非常不同的主题中的每一个主题收集的100个url,将精确性与美妙的newspaper库进行对比。这包括博客和新闻文章,以及许多没有日期的url(在这种情况下,只有当猜测返回None时,猜测才被标记为正确)。

疫苗

date_guessernewspaper
1 days5748
7 days6151
15 days6653

印度的aadhar卡

date_guessernewspaper
1 days7344
7 days7444
15 days7444

唐纳德·特朗普2017年

date_guessernewspaper
1 days7960
7 days8361
15 days8561

甜点和巧克力食谱

date_guessernewspaper
1 days8365
7 days8569
15 days8769

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
由于外键约束,java数据库插入失败   java在对失败的测试用例截图时出错,并且它没有附加到扩展报告中   java FragmentPagerAdapter总是从第一页开始   java内存泄漏,当我将数据从一个树存储库复制到另一个ext js 4.1时   java确保带有特定注释的字段是“私有的”   Java如何将UTC毫秒转换为UTC日期   开源Java:Solaris上的AWT   java为什么BufferedReader只读取第一行?   执行数据库查询时,java JTable不会刷新   java 7中的下划线和二进制文字。!!!??   java使用STaX将xml转换为另一个xml需要很多时间   hadoop如何使用JavaAPI从hbase中的表中选择特定列   使用JLabel的java拖放   用于“绘制”pdf文件的pdf生成Java库   java getResourceAsStream返回null?   java在目标帧中打开窗口   滚动对象时,java鼠标光标不会改变   java有人能解释二进制搜索树中的递归delete()并帮我转换它吗