import gradio as gr import xmltodict import requests import json style=""" .title_div{ font-size: x-large; font-weight: 700; margin-bottom: 10px; color: white; } .card_div{ background: #050523; color: white; margin: 10px; padding: 15px; border-radius: 5px; } .frame_class{ visibility:hidden; display:none; } """ head = """ """.replace("/abs/","/pdf/") def search(q,rn): api="http://export.arxiv.org/api/query?search_query=SQ&start=0&max_results=MR" r=requests.get(api.replace("SQ",q).replace("MR",str(rn))) cont=xmltodict.parse(r.content)['feed']['entry'] html="" for i,c in enumerate(cont): pdflink=c['id'].replace('/abs/','/pdf/') html+=f"""
""" html+=f"
{c['title']}
" html+=f"
{c['summary']}
" html+=f"
{pdflink}
" html+="
" html+=f"""
""" return(json.dumps(cont,indent=4)),html with gr.Blocks(css=style,head=head) as b: with gr.Group(): with gr.Row(): query=gr.Textbox(label="Query") num=gr.Number(label="Count",step=1,value=10) sub=gr.Button() html_out=gr.HTML() json_out=gr.JSON() sub.click(search,[query,num],[json_out,html_out]) b.launch()