понедельник, 21 ноября 2016 г.

hideme proxy python

#encoding:utf-8
import httplib
import mechanize
import random
import time
import urllib
import urllib2


def initial_hideme():
    url = 'http://hideme.ru/login'
    params = urllib.urlencode({'c': '193477955'})
    urllib.urlopen(url, params)

class IpProxyDNotExist(Exception):

    pass


def get_good_proxy():

    goods = []

    test_url = 'http://example.com'
    count = 4

    def check(ip):
        br = mechanize.Browser()
        br.set_proxies({'http': ip})
        br.set_handle_robots(False)
        try:
            br.open(test_url, timeout=2)
        except (urllib2.URLError, httplib.BadStatusLine):
            pass
        else:
            goods.append(ip)

    proxy_list = get_proxy_list()
    random.shuffle(proxy_list)
    proxy_list = proxy_list[:count]
    for num, ip in enumerate(proxy_list):
        if goods:
            continue
        check(ip)

    try:
        ret = goods[0]
    except IndexError:
        raise IpProxyDNotExist

    return ret


def get_proxy_list():
    response = urllib2.urlopen('http://hideme.ru/api/proxylist.php?anon=4&out=plain')
    response_text = response.read().strip()
    ret = response_text.split()
    return ret

Комментариев нет:

Отправить комментарий