Skip to main content
Glama

medRxiv-MCP-Server

medrxiv_web_search.cpython-310.pyc4.54 kB
o �u�g�� @s�ddlZddlmZddlmZ   ddd�Zd d �Zdd d �Zdd d�Zdd�Z e dkrkdZ ee dd�Z e e �dZdZdZdZdZdZdZdZdZdZe eeeeeeeeee� Z e e �dZee�Ze e�dSdS)�N)� BeautifulSoup)�quote�medrxiv� �relevance-rankc Csd} g} |r| �t|���|r| �dt|��d��|r'| �dt|����|r3| �dt|����|r@| �dt|��d��|rM| �dt|��d ��|rY| �d t|����|re| �d t|����|rt| rt| �d |�d | ���| �d| ���| �dt| ��d��| d�| �S)u4根据用户输入的字段生成 medRxiv 搜索 URLzhttps://www.medrxiv.org/search/ztitle%3Az title_flags%3Amatch-allz author1%3Az author2%3Azabstract_title%3Az! abstract_title_flags%3Amatch-allztext_abstract_title%3Az& text_abstract_title_flags%3Amatch-allzjcode%3Aztoc_section%3Az limit_from%3Az limit_to%3Az numresults%3Azsort%3Az format_result%3Astandardz%20N)�appendr�join)�term�title�author1�author2�abstract_title�text_abstract_titleZ journal_code�section� start_date�end_date� num_results�sort�base_urlZ query_parts�r�A/home/zjlab/code/mcp_hub/medRxiv-MCP-Server/medrxiv_web_search.py�generate_medrxiv_search_urls.rcCsRddi}tj||d�}|jdkr�t|jd�}|jddd�}g}|D]z}|jd d d�}|r1|j��nd }|jd d d�} | rA| j��nd } |jddd�} | rQ| j��nd} |jddd�} | rbd| dnd}|jd dd�}|rx|j���dd���nd}i}|| ||d�}|dkr�t |�dd��}|r�|� |�|� |�q!|St d|j�d��dS)u=从 medRxiv 搜索结果页面解析文章信息,包括 DOI� User-Agent�oMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36��headers��z html.parserZliz search-result)�class_�spanzhighwire-cite-title�No titlezhighwire-citation-authors� No authors�divzhighwire-cite-snippet� No abstract�azhighwire-cite-linked-titlezhttps://www.medrxiv.orgZhrefzNo linkzhighwire-cite-metadata-doizdoi:��No DOI)�Title�AuthorsZDOI_linkZLinkzhttps://doi.org/z*Error: Unable to fetch data (status code: �)N) �requests�get� status_coder�textZfind_all�find�strip�replace�doi_get_medrxiv_metadata�updater�print)� search_urlr�responseZsoup�articles�results�articleZ title_tagr Z authors_tag�authorsZ abstract_tag�abstractZlink_tag�linkZdoi_tagZdoi_link�metadata�resultrrr�scrape_medrxiv_results$s@�  �  r=c Cs�d|�d|�d�}ddi}tj||d�}|jdkrk|��}d|vrdt|d�d krd|dd }|�d d �|�d d �|�dd�|�dd�|�dd�|�dd�|�dd�|�dd�|�dd�|�dd�d� Std|�d Std!|j�d"��d S)#u<使用 medRxiv API 通过 DOI 获取文章的详细元数据z https://api.medrxiv.org/details/�/z/na/jsonrrrrZ collectionr�doir%r rr8r Zauthor_correspondingzNo corresponding authorZ author_corresponding_institutionzNo institution�datezNo date�versionz No version�categoryz No categoryz jats xml pathz No XML pathr9r") ZDOIr&r'zCorresponding AuthorzCorresponding Institution�Date�VersionZCategoryz JATS XML PathZAbstractzNo data found for DOI:Nz.Error: Unable to fetch metadata (status code: r()r)r*r+�json�lenr2)r?�server�urlrr4�datar7rrrr0Ss.�            � r0cCs"t||d�}td|�t|�}|S)N)r r�Generated URL:�rr2r=)� key_wordsrr3r5rrr�search_key_wordsss  rMc Cs2t|||||||||| d� } td| �t| �} | S)N) r r r r rrrrrrJrK) r r r r r rrrrrr3r5rrr�search_advanceds � rN�__main__zCOVID-19�)rZ MacLachlanz10.1101/2025.03.09.25323517) NNNNNNrNNNrr)r)r)r)Zbs4r� urllib.parserrr=r0rMrN�__name__rLr5r2r r r r r rrrrrr?r;rrrr�<module>s>   � /    �

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JackKuo666/medRxiv-MCP-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server