关于ip代理的三个模块

 

获取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()

 

posted @ 2018-08-29 18:04  Operater  阅读(331)  评论(0编辑  收藏  举报