请求一个html文件

时间:2012-11-09 21:28:23

标签: python http python-3.x

这个link让我从数据库中获取一个随机项。但是,我想使用Python自动检索项目。这是我的代码:

import sys
from urllib.parse import urlencode
from urllib.request import urlopen

# parameters
data = {}
data["query"] = "reviewd:yes+AND+organism:9606"
data["random"] = "yes"

url_values = urlencode(data)
url = "http://www.uniprot.org/uniprot/"
full_url = url + '?' + url_values
data = urlopen(full_url)
out = open("1.html", 'w')
out.write(str(data.read()))

但是,我无法获得所需的页面。谁知道我的代码有什么问题?我正在使用Python 3.x。

1 个答案:

答案 0 :(得分:0)

您有几个问题:

  1. reviewd拼写错误,应为reviewed
  2. 基本网址最后需要/uniprot/
  3. 您需要在查询字符串中使用空格而不是+
  4. 这是什么样的:

    import sys
    from urllib.parse import urlencode
    from urllib.request import urlopen
    
    # parameters
    data = {}
    data["query"] = "reviewed:yes AND organism:9606"
    data["random"] = "yes"
    
    url_values = urlencode(data)
    url = "http://www.uniprot.org/uniprot/"
    full_url = url + '?' + url_values
    data = urlopen(full_url)
    out = open("1.html", 'w')
    out.write(str(data.read()))
    

    这会产生以下网址:

    http://www.uniprot.org/uniprot/?query=reviewed%3Ayes+AND+organism%3A9606&random=yes