arXiv API
D'une manière ou d'une autre, twitter @ astro_ph_EP s'est arrêté, et j'aimerais voir un bot qui ne regarde que la catégorie spécifiée, alors j'ai jeté un coup d'œil à l'API arXiv.
Cependant, la description officielle (https://arxiv.org/help/api/user-manual) ne fonctionnait pas comme elle l'était ...
L'erreur s'est produite ci-dessous.
data = urllib.urlopen(url).read()
Urllib est-il vieux? S'il s'agit d'une description officielle, cela fonctionnera si vous la réécrivez comme suit!
import urllib.request
url = 'http://export.arxiv.org/api/query?search_query=all:electron&start=0&max_results=1'
data = urllib.request.urlopen(url).read()
import urllib.request
import datetime as dt
import re
def main():
basedate = dt.date.today()+dt.timedelta(days=-1)
previousdate = basedate +dt.timedelta(days=-1)
url_q = 'http://export.arxiv.org/api/query?search_query=submittedDate:['+previousdate.strftime('%Y%m%d')+'1400+TO+'+basedate.strftime('%Y%m%d')+'1400]+AND+(cat:astro-ph.EP)&start=0&sortBy=submittedDate&sortOrder=ascending'
data = urllib.request.urlopen(url_q).read().decode('utf-8')
#
parse = lambda a,b: re.findall("<" + b + ">([\s\S]*?)<\/" + b + ">", a)
#
entries = parse(str(data), "entry")
for entry in entries:
url = parse(entry, "id")[0]
title = parse(entry, "title")[0]
author = ', '.join(parse(entry, "name") )
summary = parse(entry, "summary")[0]
print( '%s\n%s\n%s\n%s' % (url, title, author, summary) )
if __name__ == '__main__':
main()
Le nombre de soumissions ne correspond pas au nombre de nouvelles soumissions ... Les vacances aux États-Unis peuvent être évitées en utilisant holidays.US ().
Recommended Posts