elleryq
12/27/2014 - 6:17 AM

Pick a server from top 10 proxy servers from http://cn-proxy.com.

Pick a server from top 10 proxy servers from http://cn-proxy.com.

"""
Dependencies:
 * requests
 * pyquery
ChangeLog:
 * 2015/1/5 Check the length of returned proxy.
 * 2014/12/27 Add seed() make sure randomize.  Rename main to get_proxy_from_cnproxy for better using.
 * 2014/12/27 Initial.
"""
from __future__ import print_function, unicode_literals
import requests
from pyquery.pyquery import PyQuery
from random import randint, seed

seed()


def get_proxy_from_cnproxy():
  r = requests.get("http://cn-proxy.com/")
  q = PyQuery(r.content)
  trs = q("tbody tr")
  proxies = []
  for tr in trs:
    trq = PyQuery(tr)
    tds = trq.children()
    ip = tds.eq(0).text()
    port = tds.eq(1).text()
    proxies.append((ip, port))

  top10proxies = proxies[:10]
  n = min(10, len(top10proxies))
  if n:
    ip, port = top10proxies[randint(0, n)]
  else:
    ip = ""
    port = ""
  return (ip, port)

if __name__ == "__main__":
  proxy = get_proxy_from_cnproxy()
  ip, port = proxy
  print("{0}:{1}".format(ip, port))