StupidBeauty
Read times:415Posted at:Tue May 10 01:05:31 2011
- no title specified

方爷爷把Entrez的服务器也墙咯

问题

本座今天在体验 BioPython教程中的一段关于Entrez的代码:

#!/usr/bin/python

#coding:utf-8

from Bio import Entrez

Entrez.email="hxcan@stupidbeauty.com"

handle=Entrez.einfo()

result=handle.read()

print result

把文件一保存 ,一运行,结果:

root@HxcanPcAtPacketScout ~/Develop/Python/Entrez pts1 # ./Entrez.py

Traceback (most recent call last):

  File "./Entrez.py", line 11, in <module>

    handle=Entrez.einfo()

  File "/usr/lib/python2.6/site-packages/Bio/Entrez/__init__.py", line 186, in einfo

    return _open(cgi, variables)

  File "/usr/lib/python2.6/site-packages/Bio/Entrez/__init__.py", line 358, in _open

    handle = urllib2.urlopen(cgi)

  File "/usr/lib/python2.6/urllib2.py", line 124, in urlopen

    return _opener.open(url, data, timeout)

  File "/usr/lib/python2.6/urllib2.py", line 383, in open

    response = self._open(req, data)

  File "/usr/lib/python2.6/urllib2.py", line 401, in _open

    '_open', req)

  File "/usr/lib/python2.6/urllib2.py", line 361, in _call_chain

    result = func(*args)

  File "/usr/lib/python2.6/urllib2.py", line 1130, in http_open

    return self.do_open(httplib.HTTPConnection, req)

  File "/usr/lib/python2.6/urllib2.py", line 1105, in do_open

    raise URLError(err)

urllib2.URLError: <urlopen error [Errno 104] Connection reset by peer>

看看最后一句关键的错误描述信息 Connection reset by peer ,多么亲切的错误信息啊。方爷爷,尼玛的。

解决方法:

去下载个 SocksiPy,放到你的脚本所在的目录或者是 Python的其它包含路径 中,再在代码中使用 SocksiPy的功能为 urllib2设置好代理服务器。具体地设置什么代理服务器就要看你是如何翻墙的咯。

比如说本座用的 SSH隧道,于是代理就要设置成 socks类型的,脚本里加上这样的代码:

import socks

import socket

socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 7070)

socket.socket = socks.socksocket

这样 urllib就会通过代理来访问 网络咯。

最终形成的完整代码是这样的

#!/usr/bin/python

#coding:utf-8

import socks

import socket

socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 7070)

socket.socket = socks.socksocket

from Bio import Entrez

Entrez.email="hxcan@stupidbeauty.com"

handle=Entrez.einfo()

result=handle.read()

print result

执行结果 ,这个看着更亲切

root@HxcanPcAtPacketScout ~/Develop/Python/Entrez pts1 # ./Entrez.py

<?xml version="1.0"?>

<!DOCTYPE eInfoResult PUBLIC "-//NLM//DTD eInfoResult, 11 May 2002//EN" "http://www.ncbi.nlm.nih.gov/entrez/query/DTD/eInfo_020511.dtd">

<eInfoResult>

<DbList>

        <DbName>pubmed</DbName>

        <DbName>protein</DbName>

        <DbName>nuccore</DbName>

        <DbName>nucleotide</DbName>

        <DbName>nucgss</DbName>

        <DbName>nucest</DbName>

        <DbName>structure</DbName>

        <DbName>genome</DbName>

        <DbName>biosample</DbName>

        <DbName>biosystems</DbName>

        <DbName>blastdbinfo</DbName>

        <DbName>books</DbName>

        <DbName>cancerchromosomes</DbName>

        <DbName>cdd</DbName>

        <DbName>gap</DbName>

        <DbName>dbvar</DbName>

        <DbName>epigenomics</DbName>

        <DbName>gene</DbName>

        <DbName>genomeprj</DbName>

        <DbName>gensat</DbName>

        <DbName>gds</DbName>

        <DbName>geo</DbName>

        <DbName>geoprofiles</DbName>

        <DbName>homologene</DbName>

        <DbName>images</DbName>

        <DbName>journals</DbName>

        <DbName>mesh</DbName>

        <DbName>ncbisearch</DbName>

        <DbName>nlmcatalog</DbName>

        <DbName>omia</DbName>

        <DbName>omim</DbName>

        <DbName>pmc</DbName>

        <DbName>popset</DbName>

        <DbName>probe</DbName>

        <DbName>proteinclusters</DbName>

        <DbName>pcassay</DbName>

        <DbName>pccompound</DbName>

        <DbName>pcsubstance</DbName>

        <DbName>seqannot</DbName>

        <DbName>snp</DbName>

        <DbName>sra</DbName>

        <DbName>taxonomy</DbName>

        <DbName>toolkit</DbName>

        <DbName>toolkitall</DbName>

        <DbName>unigene</DbName>

        <DbName>unists</DbName>

        <DbName>gencoll</DbName>

</DbList>

</eInfoResult>

多说几句

SocksiPy在这里下载:

怪不得祖国的科技跟不上世界勒 ,NCBI都封。

去你妈 ,方爷爷。

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands

 
Recent comments
2017年4月~2019年4月垃圾短信排行榜Posted at:Thu Sep 26 04:51:48 2024
Qt5.7文档翻译:QWebEngineCookieStore类,QWebEngineCookieStore ClassPosted at:Fri Aug 11 06:50:35 2023盲盒kill -9 18289 Grebe.20230517.211749.552.mp4