• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    python urllib.request模块的使用详解

    python的urllib模块提供了一系列操作url的功能,可以让我们通过url打开任意资源。其中比较常用的就是request模块,本篇主要介绍requset模块。

    urllib子模块

    robots.txt是一种存放于网站根目录下文本文件,用来告诉网络爬虫服务器上的那些文件可以被查看。又被成为robots协议,是一种约定俗成的协议。

    request模块

    function request.urlopen()

    urlopen方法用来打开资源url,常用带参数形式urlopen(url,data=None),url:资源url,data:携带的数据。

    方法的返回值始终为一个对象,并可以调用相应的方法获取返回的信息。其中对于http及https的url来说会返回一个http.client.HTTPResponse对象;

    import urllib.request
    # 我们用本地的一个简单html文件来测试
    url = 'http://127.0.0.1:8848/chenjy/test.html'
    
    req = urllib.request.urlopen(url)
    
    print(req)

    1. read() 返回服务器返回的原始数据;

    import urllib.request
    
    url ='http://127.0.0.1:8848/chenjy/test.html'
    
    req = urllib.request.urlopen(url)
    
    print(req.read())

    我们可以再调用decode()方法来解码。

    import urllib.request
    
    url = 'http://127.0.0.1:8848/chenjy/test.html'
    
    req = urllib.request.urlopen(url)
    
    print(req.read().decode())

    2.geturl() 返回获取资源的url;

    import urllib.request
    url = 'http://127.0.0.1:8848/chenjy/test.html' 
    
    req = urllib.request.urlopen(url)
    
    print(req.geturl())

    我们在页面中添加js脚本重定向页面window.location.href='http://127.0.0.1:8848/chenjy/test2.html';,会发现访问的时候会重定向到test2,但是geturl还是获取的重定向前的

    我们启动一个项目并添加一个拦截器当访问index.html的时候重定向到/ls/html/list.html页面,geturl获取的是重定向后的页面

    @Override
      	    public void handle(String target, HttpServletRequest request, HttpServletResponse response, boolean[] isHandled) {
      	      int index = target.lastIndexOf("index.html");
      	  	  if (index != -1){
        	    	HandlerKit.redirect("/ls/html/list.html",request,response,isHandled);
      	  	  }
      	      
      	    }
    import urllib.request
    url = 'http://localhost:8088/ls/index.html'
    
    req = urllib.request.urlopen(url)
    
    print(req.geturl())

    3.info() 返回页面的元信息;

    import urllib.request
    url = 'http://127.0.0.1:8848/chenjy/test.html'
    
    req = urllib.request.urlopen(url)
    
    print(req.info())

    4.getcode() 返回页面的状态码;

    import urllib.request
    url = 'http://127.0.0.1:8848/chenjy/test.html'
    
    req = urllib.request.urlopen(url)
    
    print(req.getcode())

    class request.Request

    url请求类 Request(url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None)

    import urllib.request
    
    # 模拟iphone5请求百度手机版页面
    url = 'https://www.baidu.com/'
    
    user_agent = 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1'
    headers = {
      'User-Agent': user_agent
    }
    
    # 抓取page信息
    req = urllib.request.Request(url, headers=headers,method='GET')
    page = urllib.request.urlopen(req).read().decode('utf-8')
    
    print(page)

    以上就是python urllib.request模块的使用详解的详细内容,更多关于python urllib.request模块的资料请关注脚本之家其它相关文章!

    您可能感兴趣的文章:
    • python爬虫之利用Selenium+Requests爬取拉勾网
    • Python requests timeout的设置
    • python+requests+pytest接口自动化的实现示例
    • python3 解决requests出错重试的问题
    • Python requests库参数提交的注意事项总结
    • python requests完成接口文件上传的案例
    • python爬取豆瓣电影排行榜(requests)的示例代码
    • requests在python中发送请求的实例讲解
    • python 实现Requests发送带cookies的请求
    • python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解
    • python requests库的使用
    • python实现文件+参数发送request的实例代码
    • Python爬虫基础之requestes模块
    上一篇:关于Pyinstaller闪退的补救措施
    下一篇:pyqt5 QListWidget的用法解析
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    python urllib.request模块的使用详解 python,urllib.request,模块,的,