清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
def fetch(ip): url = 'http://ip.taobao.com/service/getIpInfo.php?ip=' + ip result = [] try: response = urllib.urlopen(url).read() jsondata = json.loads(response) if jsondata[u'code'] == 0: result.append(jsondata[u'data'][u'ip'].encode('utf-8')) result.append(jsondata[u'data'][u'country'].encode('utf-8')) result.append(jsondata[u'data'][u'country_id'].encode('utf-8')) result.append(jsondata[u'data'][u'area'].encode('utf-8')) result.append(jsondata[u'data'][u'area_id'].encode('utf-8')) result.append(jsondata[u'data'][u'region'].encode('utf-8')) result.append(jsondata[u'data'][u'region_id'].encode('utf-8')) result.append(jsondata[u'data'][u'city'].encode('utf-8')) result.append(jsondata[u'data'][u'city_id'].encode('utf-8')) result.append(jsondata[u'data'][u'county'].encode('utf-8')) result.append(jsondata[u'data'][u'county_id'].encode('utf-8')) result.append(jsondata[u'data'][u'isp'].encode('utf-8')) result.append(jsondata[u'data'][u'isp_id'].encode('utf-8')) else: return 0, result except: logging.exception("Url open failed:" + url) return 0, result return 1, result def worker(ratelimit, jobs, results, progress): global cancel while not cancel: try: ratelimit.ratecontrol() ip = jobs.get(timeout=2) # Wait 2 seconds ok, result = fetch(ip) if not ok: logging.error("Fetch information failed, ip:{}".format(ip)) progress.put("") # Notify the progress even it failed elif result is not None: results.put(" ".join(result)) jobs.task_done() # Notify one item except Queue.Empty: pass except: logging.exception("Unknown Error!")