Biopython发布了查找 - “无法建立连接,因为目标计算机主动拒绝它”错误10061

时间:2014-07-07 12:38:23

标签: python biopython pubmed

我尝试使用以下标准代码从pubmed中检索特定关键字集的ID

import os
from Bio import Entrez
from Bio import Medline

#Defining keyword file
keywords_file = "D:\keywords.txt"

# Splitting keyword file into a list
keyword_list = []
keyword_list = open(keywords_file).read().split(',')
#print keyword_list

# Creating folders by keywords and creating a text file of the same keyword in each   folder
for item in keyword_list:
    create_file = item +'.txt.'
    path = r"D:\Thesis"+'\\'+item
    #print path
    if not os.path.exists(path): 
        os.makedirs(path)
    #print os.getcwd()
    os.chdir(path)
    f = open(item+'.txt','a')
    f.close()

# Using biopython to fetch ids of the keyword searches
limit = 10

def fetch_ids(keyword,limit):
    for item in keyword:
        print item
        print "Fetching search for "+item+"\n"
        #os.environ['http_proxy'] = '127.0.0.1:13828'
        Entrez.email = 'A.N.Other@example.com'
        search = Entrez.esearch(db='pubmed',retmax=limit,term = '"'+item+'"')
        print term
        result = Entrez.read(search)
        ids = result['IdList']
        #print len(ids)
        return ids

print fetch_ids(keyword_list,limit)

id_res = fetch_ids(keyword_list,limit)
print id_res

def write_ids_in_file(id_res):
    with open(item+'.txt','w') as temp_file:
        temp_file.write('\n'.join(ids))
        temp_file.close()
write_ids_in_file(id_res)

简而言之,我尝试做的是创建与每个关键字同名的文件夹,在文件夹中创建文本文件,通过代码从pubmed中获取ID并保存ID文本文件。我最初测试时,我的程序工作正常,但经过几次尝试后,它开始向我发送目标机器主动拒绝连接错误。一些可能有用的细节,

标题信息

  • 主持人=' eutils.ncbi.nlm.nih.gov'
  • 连接='关闭'
  • User-Agent =' Python-urllib / 2.7'

网址

http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?term=%22inflammasome%22&retmax=10&db=pubmed&tool=biopython&email=A.N.Other%40example.com

主持人 =' 127.0.0.1:13828'

我知道这个问题多次被问到端口没有收听的响应,但我想知道的是这是否也是我的问题,那么如何让应用程序在这个特定的端口上运行。我已经进入防火墙设置并打开了端口13828,但我不知道该怎么办。如果不是这种情况,可能会解决哪些问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

search.close()之后您需要result = Entrez.read(search)。查看官方指示。 http://biopython.org/DIST/docs/api/Bio.Entrez-module.html


由于开放连接太多而关闭端口或TCP是公共网站的正常行为。