最近我们会比较多的提到网页,因为这和python中的爬虫密切相关。当然,我们也会需要处理一些网页的请求。处理http的方法并不是单一的,学过urllib库的小伙伴好好思考下,其中有没有解决的办法呢?答案是当然有啦!不过这属于进阶的知识点,可能萌新还没有接触到。今天小编就来讲讲urllib库中处理http请求的一些操作吧。
http 协议有六种请求方法,get,head,put,delete,post,options,我们有时候需要用到 PUT 方式或者 DELETE 方式请求。
PUT:这个方法比较少见。HTML表单也不支持这个。本质上来讲,PUT和POST极为相似,都是向服务器发送数据,但它们之间有一个重要区别,PUT通常指定了资源的存放位置,而POST则没有,POST的数据存放位置由服务器自己决定。DELETE:删除某一个资源。基本上这个也很少见,不过还是有一些地方比如amazon的S3云服务里面就用的这个方法来删除资源。
如果要使用 HTTP PUT 和DELETE,只能使用比较低层的httplib库。虽然如此,我们还是能通过下面的方式,使urllib2能够发出PUT或DELETE的请求,不过用的次数的确是少,在这里提一下。import urllib2
request = urllib2.Request(uri, data=data)
request.get_method = lambda: 'PUT' # or 'DELETE'
response = urllib2.urlopen(request)
拓展:使用 DebugLog
可以通过下面的方法把 Debug Log 打开,这样收发包的内容就会在屏幕上打印出来,方便调试,这个也不太常用,仅提一下import urllib2
httpHandler = urllib2.HTTPHandler(debuglevel=1)
httpsHandler = urllib2.HTTPSHandler(debuglevel=1)
opener = urllib2.build_opener(httpHandler, httpsHandler)
urllib2.install_opener(opener)
response = urllib2.urlopen('http://www.baidu.com')
以上就是python爬虫使用http请求的方法。今天算是带领大家学会put的的用法,对post感兴趣的也可以去翻阅下,因为两个有相似的地方,相信学习起来也不会太难。更多Python学习推荐:PyThon学习网教学中心。