All pastes #720926 Raw Edit

Someone

public python v1 · immutable
#720926 ·published 2007-09-30 20:14 UTC
rendered paste body
 cat citeseerdownloaderv2.py #TODO: #       - Te puede aparecer un    <header status="deleted">  #       - CLASSPATH="/home/gus/workspace/CiteseerDownload/src/OAI-PMH.jar:/home/gus/xmlbeans-2.2.0/lib/xmlpublic.jar:/home/gus/xmlbeans-2.2.0/lib/xbean.jar:/home/gus/xmlbeans-2.2.0/lib/xbean_xpath.jar:/home/gus/xmlbeans-2.2.0/lib/jsr173_1.0_api.jar:/home/gus/workspace/CiteseerDownload/src/oai_dc.jar"#       - Capas que lo mejor seria generar un YAMLimport httplib, osimport org.openarchives.oai.x20 import java.io.Fileimport org.apache.xmlbeansdef get_listing(conn):        conn.request("GET", "/oai2?verb=ListIdentifiers&metadataPrefix=oai_dc")        response = conn.getresponse()        if (response.reason == "OK" and response.status == 200):                listidsdoc = org.openarchives.oai.x20.OAIPMHDocument.Factory.parse(response.read())                listids = listidsdoc.getOAIPMH().getListIdentifiers().getHeaderArray()                return listids        else:                print "Problema obtenindo la lista de archivos"def get_paper(id, i, out):        conn = httplib.HTTPConnection("export.arxiv.org")        url = "/oai2?verb=GetRecord&identifier=%s&metadataPrefix=oai_dc" % id        conn.request("GET", url)        response = conn.getresponse()        xmlopts = org.apache.xmlbeans.XmlOptions()        xmlopts.setSaveUseOpenFrag()         xmlopts.setUseDefaultNamespace()         rec = org.openarchives.oai.x20.OAIPMHDocument.Factory.parse(response.read(),xmlopts)        meta = rec.getOAIPMH().getGetRecord().getRecord().getMetadata()        dc = org.openarchives.oai.x20.oaiDc.DcDocument.Factory.parse(meta.toString(),xmlopts).getDc()        title = dc.getTitleArray(0).toString().split("<xml-fragment xmlns:oai_dc=\"http://www.openarchives.org/OAI/2.0/oai_dc/\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">")[1].split("</xml-fragment>")[0]        dsc = dc.getDescriptionArray(0).toString().split("<xml-fragment xmlns:oai_dc=\"http://www.openarchives.org/OAI/2.0/oai_dc/\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">")[1].split("</xml-fragment>")[0]        name = id.split(":")        name = name[2]        urlpdf = "http://arxiv.org/pdf/%s" % name        os.system("curl %s > /home/gus/papersV2/download/%s.pdf" % (urlpdf, name))        out.write("<File number=\"%d\" title=\"%s\" name=\"%s\" abstract=\"%s\" > </File> \n" % (i, title, name, dsc))        out.flush()        conn.close()def get_papers(out):        """ Main Loop """        out.write('<?xml version="1.0" encoding="ISO-8859-1"?> \n')            out.write('<root> \n')        conn = httplib.HTTPConnection("export.arxiv.org")        listids = get_listing(conn)        i=0        for id in listids[0:len(listids)/6]: #hay 10k en este repo vamo a encarar la tercera parte                i=i+1                print "%d/%d" % (i,len(listids)/6)                get_paper(id.getIdentifier(), i, out)        out.write('</root>')        out.close()out = open ('/home/gus/papersV2/download/summary.out', 'w') get_papers(out)