美文网首页python爬虫
爬虫基础系列urllib——HTTP代理(5)

爬虫基础系列urllib——HTTP代理(5)

作者: 猛犸象和剑齿虎 | 来源:发表于2019-05-06 06:10 被阅读0次
    1920664-0c61644217f76c3a.jpg

    (这是抄网上的一段解释)

    什么是HTTP代理

    • HTTP代理指的是使用代理服务器使网络用户访问外部网站。代理服务器是介于浏览器和Web服务器之间的一台服务器,是建立在超文本传输协议上的网络浏览方式,作用是可以防伪部分对协议进行了限制的局域网。
    • 关于HTTP代理服务器的主要功能包括五个方面:
    1. 突破自身IP访问限制,访问国外站点;
    2. 访问一些单位或团体内部资源,如某大学的内部网,使用教育网内地址段免费代理服务器可以用于对教育 网开放的各类下载上传以及各类资料查询共享等服务;
    3. 突破中国电信的IP封锁:中国电信有很多网站限制了用户访问,使用HTTP代理可以突破访问限制;
    4. 提高访问速度:通常代理服务器都设置一个较大的硬盘缓冲区,当有外界的信息通过时将信息保存到缓冲区中,当其他用户再访问相同的信息时, 可直接由缓冲区中取出信息传递给用户,提高访问速度;
    5. 隐藏真实IP:HTTP代理可以隐藏IP地址,避免受到网络攻击。

    在爬虫中的实现

    • 之前一直采用urlopen()方法,它不支持代理、cookie(有些网站需要用户登录用户名和密码,cookie 以加密的方式存储用户的个人信息)、以及HTTP和HTTPS一些方法。
    • 用户自定义urlopen方法,将这些代理放入请求中。request.build_opener()方法
      完整代码:
    #之前一直用urlopen()函数,它不支持代理,cookie,以及HTTP,HTTPS等一些方法
    #这里用到request.build_opener()方法
    
    from urllib import request
    #构建处理器对象,专门处理请求头的对象
    http_hander=request.HTTPHandler()
    #创建一个自定义的opener
    opener=request.build_opener(http_hander)
    #同样也可以用原先的urlopen()方法,需要把opener设置为全局变量
    request.install_opener(opener)
    
    #创建自定义请求对象
    req=request.Request("http://www.baidu.com/")
    #发送请求获取响应
    reponse=request.urlopen(req).read()
    #reponse=opener.open(req).read().decode()#这里的方式与urlopen类似
    print(reponse)
    

    返回结果将是二进制形式的网页信息

    相关文章

      网友评论

        本文标题:爬虫基础系列urllib——HTTP代理(5)

        本文链接:https://www.haomeiwen.com/subject/biztoqtx.html