20170918-00-(代理ip检验)

代码集编号 20170918-00

import random                                 #随机数模块
import urllib.request                         #常用爬虫模块
import time
from bs4 import BeautifulSoup                #网页页面优化模块
import re                                    #正则模块
import json                                  #json数据分析模块

url="http://www.whatismyip.com.tw/"
real=input("请输入您的真实ip:")
url1="http://www.baidu.com/"               #用代理ip访问百度用以验证

#**********************************************************************************

def text(textip):                                                                  #定义函数
    proxy_support = urllib.request.ProxyHandler({'http':textip})
    opener=urllib.request.build_opener(proxy_support)                               #接入代理ip
    opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36')]    #替换头部
    urllib.request.install_opener(opener)
    try:
        response = urllib.request.urlopen(url1, timeout=5)                          #访问百度,定义延迟时间
        x=0
    except:
        x=1
    return x
   
#*******************************************************************************************************

while 1==1:                                                                        #主程序
    textip=input("请输入要验证的ip和端口:")
    
    print("----------------------正在验证--------------------------")
    
    text(textip)
    x=text(textip)
    
    if x == 0:                                                                     #获取返回值
        response=urllib.request.urlopen(url)
        html = response.read().decode('utf-8')

        soup=BeautifulSoup(html,'html.parser')
        
        y=re.compile(r'<script id="ip-json" type="application/json">([\s\S]*?)</script>')
        a=y.findall(str(soup))
        
        dicip=eval(a[0])           #将字符串转化为字典
        print(dicip['ip-real'])                                                   #在url中找到自己的ip-real一项 并与自己输入的真时ip比较,从而判断是否为高匿ip
        if dicip['ip-real']==real:
          print("代理有效,但不属于匿名代理")
        else:
          print("代理有效,属于匿名代理")
    else:
        print("连接超时,该代理无效或者超时")
    
    print("-------------------------------------------------$$$$-------")
    
#**************************************************************************************************************
   # 本代码 @  1,使用代理ip    2,隐藏(替换)头部   3,爬虫基本代码   4,将字符串转化为字典 函数 eval()

 

posted @ 2017-09-18 20:54  金牛小子  阅读(269)  评论(0编辑  收藏  举报