首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
V2EX  ›  Python

多拨爬虫自动切换 IP 的例子

  •  
  •   smallgoogle · 232 天前 · 1774 次点击
    这是一个创建于 232 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在做网易云的信息抓取,数据太大了。几十个亿。
    用 HTTP 代理吧,多线程太慢了。所以就用了远程多拨。
    速度还是挺快的。然后就把这个自动切换的脚本放出来。
    也是给自己做个记录吧。
    其实就是调用 win 下自己的那个 V-P-N 拨号。拨远程而已。。

    '''

    import os
    import time

    class VPNHelper(object):
    # VPNName: _vpnIP
    # VPNUsername: _userName
    # VPNPassword: _passWord
    def __init__(self, _vpnIP="代理名称", _userName="多拨账号", _passWord="多拨密码", WinDir=r"C:\windows\system32", RasDialFileName=r'\rasdial.exe'):
    self.IPToPing = _vpnIP
    self._VPNName = _vpnIP
    self._UserName = _userName
    self._PassWord = _passWord
    self._WinDir = WinDir
    self._RasDialFileName = RasDialFileName
    self._VPNPROCESS = self._WinDir + self._RasDialFileName

    def connectVPN(self):  
        try:  
            command = self._VPNName + " " + self._UserName + " " + self._PassWord  
            res = os.system(self._VPNPROCESS + " " + command)  
            return res  
        except:  
            print("VPN 连接失败!")  
    
    def disConnectVPN(self):
        try:
            command = self._VPNName + " /d"
            os.system(self._VPNPROCESS + " " + command)
        except:
            print("VPN 断开失败!")
    
    def Restart(self, waitingTime=2):
        self.disConnectVPN()
        time.sleep(waitingTime)
        res = self.connectVPN()
        return res
    

    # if __name__ == "__main__":
    # vpn = VPNHelper()
    # vpn.Restart()

    '''

    7 回复  |  直到 2018-11-27 22:01:16 +08:00
        1
    myhot21   232 天前 via Android
    代理本身并不慢,慢的只是你用了免费代理 ip。
        2
    zhujinlong   231 天前
    1. Non-Blocking http
    2. Http client proxy
    你的这个方案太慢了
        3
    gamecreating   231 天前
    市面上的全国混拨 VPN 没有靠谱稳定的...
    楼主有吗
        4
    techeek   231 天前
    可以看下我前段时间吃饱了撑的做的项目
    https://www.techeek.cn/zhihu_64W
    最近更新了下源码,不用代理了,直接抓接口
        5
    Nick2VIPUser   231 天前
    借楼问一下各位大佬:
    ```
    我想试验使用宽带拨号 VPS 作《代理 IP 》的效果。
    然后测试了两家拨号 VPS 的机器(配置:1 核 1G30M centOS 系统),有一个同样的问题:
    - 循环 pppoe-stop;pppoe-start 命令执行后,10 次有 3~4 次是没有网的( curl www.baidu.com 不通)
    - 执行 pppoe-stop;pppoe-start 命令后并没有报错和其他提示,ifconfig 也能显示公网 IP
    - 问了客服也问不出个所以然来
    ```
    原帖: https://www.v2ex.com/t/509442#reply0
        6
    smallgoogle   231 天前
    @gamecreating 我有一个。一个月 60,可以两个端拨。很快。
        7
    smallgoogle   231 天前
    @Nick2VIPUser 你大概是 linux 系统。linux 设置了 V-P-N、还需要再设置一下网关。不然 IP 其实是没变动额。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4050 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 22ms · UTC 03:21 · PVG 11:21 · LAX 20:21 · JFK 23:21
    ♥ Do have faith in what you're doing.