爬虫 :urllib库的用法,关于 request,parse模块总结

本文介绍了Python内置的urllib库,重点关注request模块的urlopen()、Request类以及Handler的使用,同时讲解了parse模块在URL处理中的应用。通过示例展示了POST请求、设置超时、自定义Header以及处理cookies的方法。
摘要由CSDN通过智能技术生成

urllib库

它是python内置的请求库,包括 request ,error ,parse,robotparse。

这里主要介绍request 和parse模块。

request

它是HTTP请求模块,主要用来模拟发送请求。就像我们输入网址之后回车这样,这个模块提供一些参数,就可以模拟这个过程了。

1.urlopen()

urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)

用这个方法很简单,给这个方法传入一个url就可以请求网页,直接看代码

def urltest1():

    response = urllib.request.urlopen('https://www.python.org')  # 抓取python官网
    print(response.read().decode('utf-8'))    # 输出网页源码
    print(response.status)    # 查看返回结果的状态码
    print(response.getheaders())    # 查看相应的头信息
    print(response.getheader('Server')) # 查看响应头中的Server信息
    print(type(response.read()))    # 查看类型

if __name__ == '__main__':
    urltest1()
    pass

运行结果:

data参数

还可以给方法中的 data 传参, data为我们要传入的数据。这样一来,它的请求方式就不是GET,而是POST。也就是说模拟了表单提交的方式,以POST传输数据。

def urltest2():
    data = urllib.parse.urlencode({'word': 'hello'})  # urlencode将字典转字符串
    data = data.encode('utf-8')  # 转字节流
    response = urllib.request.urlopen('http://httpbin.org/post', data=data)
    print(response.read().decode('utf-8'))  # decode将字节流转为字符串

if __name__ == '__main__':
    # usecookies()
    urltest2()
    pass

运行结果:

{
  "args": {}, 
  "data": "", 
  "files": {}, 
  "form": {
    "word": "hello"
  }, 
  "headers": {
    "Accept-Encoding": "identity", 
    "Content-Length": "10", 
    "Content-Type": "application/x-www-form-urlencoded", 
 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值