使用httplib连接到Python中的网站

使用httplib连接到Python中的网站,python,connection,httpconnection,Python,Connection,Httpconnection,tl;dr:使用httplib创建到站点的连接。我失败了,我需要一些指导 我遇到了一些麻烦。阅读python的socket和httplib,虽然我在语法方面有一些问题,但似乎是这样 这是: connection = httplib.HTTPConnection('www.site.org', 80, timeout=10, 1.2.3.4) 语法如下: httplib.HTTPConnection(host[, port[, strict[, timeout[, source_address]

tl;dr:使用httplib创建到站点的连接。我失败了,我需要一些指导

我遇到了一些麻烦。阅读python的socket和httplib,虽然我在语法方面有一些问题,但似乎是这样

这是:

connection = httplib.HTTPConnection('www.site.org', 80, timeout=10, 1.2.3.4)
语法如下:

httplib.HTTPConnection(host[, port[, strict[, timeout[, source_address]]]])
“源地址”的行为如何?我可以用它的任何IP进行请求吗? 我不需要一个用户代理吗

另外,如何检查连接是否成功

if connection:
print "Connection Successful."

(据我所知,HTTP不需要每隔一秒钟进行一次“你还活着吗”ping,只要客户端和服务器都正常,当发出请求时,它就会被处理。因此我不能不断地ping。)

创建对象实际上并没有连接到网站:
HTTPConnection.connect():
连接到创建对象时指定的服务器。

源地址
似乎随任何请求一起发送到服务器,但它没有 似乎有任何影响。我不知道你为什么需要使用用户代理。 无论哪种方式,它都是可选参数

您似乎也无法检查是否建立了连接,这 这很奇怪

假设您要做的是获取网站根目录的内容,您可以使用以下方法:

from httplib import HTTPConnection
conn = HTTPConnection("www.site.org", 80, timeout=10)
conn.connect()

conn.request("GET", "http://www.site.org/")
resp = conn.getresponse()

data = resp.read()
print(data)
(从地板上摔在一起)


老实说,您不应该使用
httplib
,而应该使用
urllib2
或另一个不太。。。低级。

创建对象实际上并没有连接到网站:
HTTPConnection.connect():
连接到创建对象时指定的服务器。

源地址
似乎随任何请求一起发送到服务器,但它没有 似乎有任何影响。我不知道你为什么需要使用用户代理。 无论哪种方式,它都是可选参数

您似乎也无法检查是否建立了连接,这 这很奇怪

假设您要做的是获取网站根目录的内容,您可以使用以下方法:

from httplib import HTTPConnection
conn = HTTPConnection("www.site.org", 80, timeout=10)
conn.connect()

conn.request("GET", "http://www.site.org/")
resp = conn.getresponse()

data = resp.read()
print(data)
(从地板上摔在一起)


老实说,您不应该使用
httplib
,而应该使用
urllib2
或另一个不太。。。低级。

为什么要使用httplib而不是urllib(2)或请求?嘿-我没有,我使用的是2.7.5,但我会深入研究urllib,看看它是如何运行的!非常感谢。而且,我也不知道“请求”!我会查的,谢谢。为什么要用httplib而不是urllib(2)或请求?嘿,我没有,我用的是2.7.5,但我会深入urllib,看看它是怎么回事!非常感谢。而且,我也不知道“请求”!我会查的,谢谢。太棒了!它确实有效,但我得到了这个错误:我的noob猜测是,我需要一个UA,这样服务器就可以理解我的请求来自哪里。你觉得怎么样?这很奇怪-为什么它会发送格式错误的请求?您正在使用源地址吗?如果是这样的话,您发送的是合法的IP而不是1.2.3.4吗?似乎它在不同的主机(404、400、302等等)上给了我不同的错误。这意味着它在做它的工作。但不,我现在不使用源地址!非常感谢你的帮助。我将进一步研究这些库!太神了它确实有效,但我得到了这个错误:我的noob猜测是,我需要一个UA,这样服务器就可以理解我的请求来自哪里。你觉得怎么样?这很奇怪-为什么它会发送格式错误的请求?您正在使用源地址吗?如果是这样的话,您发送的是合法的IP而不是1.2.3.4吗?似乎它在不同的主机(404、400、302等等)上给了我不同的错误。这意味着它在做它的工作。但不,我现在不使用源地址!非常感谢你的帮助。我将进一步研究这些库!