下面我将详细讲解 “Python urllib、urllib2、httplib抓取网页代码实例”的完整攻略。
一、Python HTTP客户端模块
Python的HTTP客户端模块有 urllib、urllib2 和 httplib。其中,urllib 和 urllib2 库已经包含在Python标准库中,可以轻松地抓取网页和其他网络资源。后来又增加了 httplib 模块,不过 httplib 更多的是用来实现服务器端。
二、urllib模块
urllib是Python的一个标准库,可以用来访问网络资源。下面是使用urllib库进行网页访问的示例代码:
import urllib
url = 'http://www.baidu.com'
response = urllib.urlopen(url)
html = response.read()
print(html)
这段代码中用 urllib.urlopen() 打开指定的网址,可以看到返回的是一个 response 对象。可以通过 response.read() 函数来获取网页的内容,上面的代码执行后会输出百度首页的 HTML 代码。
三、urllib2模块
urllib2 是 Python 提供的 HTTP 客户端库,相较于 urllib 更强大一些。使用 urllib2 可以方便地添加 HTTP 头、发送 POST 数据、使用 HTTP cookie 等操作。
下面是使用 urllib2 库进行网页访问的示例代码:
import urllib2
url = 'http://www.baidu.com'
request = urllib2.Request(url)
response = urllib2.urlopen(request)
html = response.read()
print(html)
这段代码中首先创建了一个 Request 对象,然后用 urllib2.urlopen() 打开指定的网址,可以看到返回的同样是一个 response 对象。可以通过 response.read() 函数来获取网页的内容,上面的代码执行后也会输出百度首页的 HTML 代码。
四、httplib模块
httplib 是 Python 的一个 HTTP 客户端库,可以使用该库实现更加自由的 HTTP 请求,比如请求方式、请求头等都可以自己设置。下面是使用 httplib 库进行网页访问的示例代码:
import httplib
conn = httplib.HTTPConnection("www.baidu.com")
conn.request("GET", "/")
response = conn.getresponse()
data = response.read()
print(data)
conn.close()
这段代码中首先创建了一个 HTTPConnection 对象,然后用 request() 方法请求网址。最后通过 getresponse() 函数获取响应数据,同样可以通过 response.read() 函数来获取网页的内容。可以看到上面的代码也能够输出百度首页的 HTML 代码。
五、总结
以上就是使用 Python 进行网页访问的三种方法:urllib、urllib2 和 httplib。其中,urllib2 更强大一些,可以方便地添加 HTTP 头、发送 POST 数据、使用 HTTP cookie 等操作。
同时要注意的是,在 Python 3.x 版本中 urllib 和 urllib2 被合并成了 urllib.request 和 urllib.error 两个模块,使用上需要注意一下。
希望对大家使用 Python 进行网页访问有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python urllib、urllib2、httplib抓取网页代码实例 - Python技术站