使用 scapy 爬取数据时,经常遇到 IP 被限制,在一些 VPS 上使用 adsl 重连可以达到切换 IP 的目的。
在 windows 上可以使用以下命令连接或断开 adsl。

rasdial ADSL user_name password #连接
rasdial ADLS /d #断开

为了方便,使用以下 python 脚本定时控制:

#coding:utf-8
import os
import time
import logging

console = logging.StreamHandler()
console.setLevel(logging.INFO)
formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
console.setFormatter(formatter)
logging.getLogger('').addHandler(console)

logger = logging.getLogger(__name__)

while True:
    logger.info('CONNECT ADSL...')
    result = os.popen('rasdial ADSL user_name password').readlines()
    logger.info(''.join(result))
    if '\xc4\xfa\xd2\xd1\xbe\xad\xc1\xac\xbd\xd3\xb5\xbd ADSL\xa1\xa3\n' in result or '\xd2\xd1\xc1\xac\xbd\xd3 ADSL\xa1\xa3\n' in result:
        logger.info('CONNECTED ')
        time.sleep(120)# reconnnect after 2 minutes
    else:
        time.sleep(1)
    logger.info('SHUTDOWN ADSL...')
    os.system('rasdial ADSL /d')
    logger.info('=======================================')
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐