获取ip,然后随机选择ip,删除无用的ip

 

#!/usr/bin/env python
# coding:utf8
# author:Z time:2018/8/16
import random

import pymysql
import requests


def get_ip():
    """
    获取ip代理池里的ip
    :return:
    """
    connect = pymysql.Connect(
        host=\'127.0.0.1\',
        port=3306,
        user=\'root\',
        password=\'\',
        db=\'haha\',
        charset=\'utf8\'
    )

    # connect = pymysql.Connect(
    #             host=\'10.10.141.235\',
    #             port=3306,
    #             user=\'gtcom\',
    #             passwd=\'admin@gt.com1\',
    #             db=\'big_data\',
    #             charset=\'utf8\'
    #         )

    sql1 = """
    select ip_address from ip_proxy 
    """
    sql2 = """
        select port from ip_proxy 
        """
    sql3 = """
            select type_ from ip_proxy 
            """
    cursor = connect.cursor()

    sql4 = """
    select count(*) from ip_proxy
    """
    cursor.execute(sql4)
    a = cursor.fetchall()  # ((0,),)

    if a[0][0] == 0:  # 判断数据库是否为空
        print(\'没有数据\')
        # 调用付费代理ip
        html = requests.get(
            \'http://webapi.http.zhimacangku.com/getip?num=1&type=1&pro=&city=0&yys=0&port=1&time=1&ts=0&ys=0&cs=0&lb=1&sb=0&pb=4&mr=1&regions=\')
        pay_ip_proxy = html.text.strip()
        s_ip_proxy = pay_ip_proxy.split(\':\')
        ip_addresses = s_ip_proxy[0]
        ports = s_ip_proxy[1]
        type_s = \'HTTP\'
        return ip_addresses,ports,type_s

    else:
        cursor.execute(sql1)
        ip_addresses = cursor.fetchall()
        # ip_address=random.choice(ip_addresses)[0]

        cursor.execute(sql2)
        ports = cursor.fetchall()
        # port=random.choice(ports)[0]

        cursor.execute(sql3)
        type_s = cursor.fetchall()
        # type_=random.choice(type_s)[0]


        return ip_addresses,ports,type_s

ip_addresses,ports,type_s = get_ip()


def change_ip():
    """
    随机切换ip
    :return:
    """
    ip_address = random.choice(ip_addresses)[0]
    port = random.choice(ports)[0]
    type_ = random.choice(type_s)[0]

    proxies = {
        type_: type_ + \'://\' + ip_address + \':\' + port
    }
    return proxies,ip_address


def delete_ip(ip_address):
    """
    删除无效的ip
    :param ip_address:
    :return:
    """
    connect = pymysql.Connect(
        host=\'123.59.74.160\',
        port=3306,
        user=\'gtcom\',
        passwd=\'admin@gt.com1\',
        db=\'big_data\',
        charset=\'utf8\'
    )
    # connect = pymysql.Connect(
    #     host=\'10.10.141.235\',
    #     port=3306,
    #     user=\'gtcom\',
    #     passwd=\'admin@gt.com1\',
    #     db=\'big_data\',
    #     charset=\'utf8\'
    # )
    # connect = pymysql.Connect(
    #     host=\'localhost\',
    #     port=3306,
    #     user=\'root\',
    #     passwd=\'\',
    #     db=\'haha\',
    #     charset=\'utf8\'
    # )
    cursor = connect.cursor()

    sql = """

        delete from ip_proxy where ip_address=\'{}\'
        """.format(ip_address)

    cursor.execute(sql)
    connect.commit()

    cursor.close()
    connect.close()

 

版权声明:本文为z-x-y原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/z-x-y/articles/9556058.html