当使用数组和`urlencoding`它与`urllib.urlencode()`时,它显示错误

时间:2015-03-09 09:58:55

标签: python urllib urlencode

当我使用urlliburllib2访问网络时news.google.com并尝试使用以下内容发送一些获取请求:

import urllib2
import urllib
data = {}
data['output'] = 'rss'
data['num'] = 1
url_val = urllib.urlencode(data)
url = 'https://news.google.com/'
ful_url = url + '?' + url_val
data_rec = urllib2.urlopen(ful_url)
print(data_rec)

它显示如下错误:<addinfourl at 43609384 whose fp = <socket._fileobject object at 0x02989A30>>

但是当我使用像

这样的东西时
import urllib2
import urllib
url = "news.google.com/?output=rss&num=1"
data_rec = urllib2.urlopen(url)
print(data_rec)

有效!但为什么第一种方法不起作用?

1 个答案:

答案 0 :(得分:1)

您的第二个示例实际上与您的第一个示例相同。结果不是错误,而只是urllib连接的字符串表示。

要打印资源的内容,您需要从连接中读取数据:

print(data_rec.read())