1. def get_ip_kuaidaili():
    2. target_url = 'http://dps.kdlapi.com/api/getdps/?orderid=973756560305556&num=1&pt=1&format=json&sep=1'
    3. resp = requests.get(target_url)
    4. resp_json = resp.json()
    5. # print(resp_json)
    6. # {'msg': '', 'code': 0, 'data': {'count': 1, 'proxy_list': ['121.232.148.175:3256']}}
    7. if resp_json['code'] == 0:
    8. proxy_list = resp_json['data']['proxy_list']
    9. return proxy_list[0]
    10. def ip_check_pre(self):
    11. avalible = True
    12. for _ in range(4):
    13. time.sleep(1)
    14. try:
    15. self.ip_check()
    16. avalible = True
    17. break
    18. except (requests.exceptions.ConnectTimeout, requests.exceptions.ReadTimeout, urllib3.exceptions.ReadTimeoutError):
    19. self.print('ip check timeout')
    20. continue
    21. except AssertionError:
    22. self.print('ip check assert')
    23. continue
    24. else:
    25. # raise ValueError('proxy not avalible')
    26. avalible = False
    27. return avalible
    28. def ip_check(self):
    29. headers = {"User-Agent": "Mozilla/5.0"}
    30. proxies = {
    31. # "http": f"http://85.173.165.36:46330"
    32. "http": 'http://' + self.proxy
    33. }
    34. url = 'http://httpbin.org/ip'
    35. res = requests.get(url, proxies=proxies, headers=headers, timeout=5)
    36. # print(res.text)
    37. # res_json = json.loads(res.text)
    38. # print(res_json)
    39. try:
    40. res_json = res.json()
    41. # print('ip_check', res_json)
    42. ip = res_json['origin']
    43. except json.decoder.JSONDecodeError:
    44. ip = res.text
    45. if platform.node() == "manjaro":
    46. assert ip != "116.52.193.63", '代理失效'
    47. else:
    48. assert ip != "182.92.232.230", '代理失效'