从网页中提取发布日期

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类。getResource和ClassLoader。getSystemResource:有没有理由选择其中一个而不是另一个?   在Java中以编程方式粘贴后恢复剪贴板   Java字符串到日期没有时间   JavaSpring注释:@Component起作用,@Repository不起作用   java“addScript”在HSQL中是否有最大记录计数?   java如何将值从JDialog框返回到父JFrame?   java我的模块库的用户有没有办法访问尚未导出的类?   java javac:未找到命令   java如何解决jsoup错误:无法找到请求目标的有效证书路径   类中的java作用域变量   Java中集合实现中的arraylist add()方法不起作用   java如何使用while循环和从用户接收输入来近似Pi?   java Spring安全CSRF培训模式   在安卓系统中,如何通过在警报框外单击来限制用户?