• 18101055830
  • python抓取数据,python使用socks代理抓取数据
    当前位置: 主页 > 程序知识 >
    来源: 厦门点燃未来网络科技有限公司     发布时间: 2017-09-08 23:58

      在python中,正常的抓取数据直接使用urllib2 这个模块:

    import urllib2
    url = 'http://fanyi.baidu.com/'
    stream = urllib2.urlopen(url)
    cont = stream.read()
    print cont

      如果要走http代理的话,我们也可以使用urllib2,不需要引用别的模块:

    import urllib2
    url = 'https://clients5.google.com/pagead/drt/dn/dn.js'
    proxy_handler = urllib2.ProxyHandler({'http':'127.0.0.1:1080'})
    opener = urllib2.build_opener(proxy_handler)
    f = opener.open(url)
    print f.read()

      如果要使用socks5代理, 我们需要别的模块 sockes, socket, 我们可以通过pip install socksipy , (我是windows的系统, 还需要另外的一个模块, pip install win_inet_pton) 建议直接下载安装包到python的安装目录,切换到对应目录,执行python setup.py install安装,真被大天朝的墙给坑死了, 然后在需要代理的模块上添加socket代码:

    import socks
    import socket
    socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 1080)
    socket.socket = socks.socksocket

      完整的代码如下:

    //添加的代码开头
    import win_inet_pton
    import socks
    import socket
    socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 1080)
    socket.socket = socks.socksocket
    //添加的代码结束
    import urllib2
    steam = urllib2.urlopen('https://clients5.google.com/pagead/drt/dn/dn.js')
    print steam.read()

      使用requests模块, 我们也在requests之前添加socket的代码,后面的http请求不用改了,还是走原来的逻辑:

    //添加的代码开头
    import win_inet_pton
    import socket
    import socks
    import requests
    ip='localhost'
    port = 1080
    socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, ip, port)
    socket.socket = socks.socksocket
    //添加的代码结束
    url = 'https://clients5.google.com/pagead/drt/dn/dn.js'
    print requests.get(url).text

      相关:

      github:https://github.com/mitsuhiko/python-geoip/issues/4

    作者: NONO 
    出处:http://www.cnblogs.com/diligenceday/ 
    企业网站:http://www.idrwl.com/ 厦门点燃未来网络科技
    开源博客:http://www.github.com/sqqihao
    QQ:287101329 
    微信:18101055830

    厦门点燃未来网络科技有限公司, 是厦门最好的微信应用, 小程序, 微信网站, 公众号开发公司

    (责任编辑:admin)
    文章出自: 厦门点燃未来网络科技有限公司 http://www.idrwl.com如转载请注明出处!
    • 网站建设找点燃
    • 重视设计 重视服务 重视沟通 用诚信和口碑打造品牌!
    • 18101055830   
    • 客服①: 在线洽谈
  • 手机:18101055830
  • 地址:厦门翔安新店镇西岩石路10号 网址:www.idrwl.com 邮箱 sqqihao@163.com
  • 版权所有 2015-2023(C) 厦门点燃未来网络科技有限公司    闽ICP备17019404号-1