# request
# 动态页面加载 Selenium
# request
# 响应类型为 json
# import json # json.loads(str) # 将str转化为dict
# json.dumps(dict) # 将dict转化为 str
#获取ip地址开始
import requests
from fake_useragent import UserAgent #代理
from lxml.etree import HTML #获取html
import time,pickle #包
#常见的几种用法
res = requests.get(url)
print(res.text)
print(res.content)
print(res.url)
print(res.encoding)
print(res.status_code) url = "https://www.kuaidaili.com/free/inha/%s/"
#获取代理开始(让网站不认为你在爬取数据)
ua = UserAgent()
headers={
"User-Agent":ua.random
}
#获取代理结束
def getIP(url):
res = requests.get(url,headers=headers)#获取某个网页,省的解码
doc = HTML(res.text) #解析html
ips = doc.xpath("//td[@data-title='IP']/text()") #获取数据
ports = doc.xpath("//td[@data-title='PORT']/text()")
arr = [ ip+":"+port for ip,port in zip(ips,ports)] #以数组的形式返回
return arr
IPS = [] #定义空数组放置ip
for i in range(1,10): #十页 遍历
time.sleep(1) #间隔时间
arr = getIP(url%i) #调用函数内容
print(arr) #提示信息可以实时看到爬取信息
IPS+=arr #一页数组 ,而不是都加在一个数组中 with open("快代理.txt",'wb') as f: #写入文件 wb二进制写入
pickle.dump(IPS,f)
#测试ip
with open("快代理.txt", 'rb') as f:
arr = pickle.load(f) #加载文件
IPs = [] # 可用代理ip
def test(ip):
#测试可能出现情况
proxie = {
'http':'http://%s' % ip,
'https': 'https://%s' % ip,
}
#异常提醒
try:
res = requests.get('https://www.baidu.com', proxies=proxie, timeout=10)
print("Ok%s可用" % ip)
IPs.append(ip) #将可用的ip放到数组IPs中
except Exception:#否则
print("error %s不可用" % ip)
for ip in arr:
test(ip)
print("共有%s可用" % len(IPs))
with open("ip.txt", "wb") as f: #二进制写入
pickle.dump(IPs, f)

获取ip地址&&测试ip地址的更多相关文章

  1. 爬取快代理的免费IP并测试

    各大免费IP的网站的反爬手段往往是封掉在一定时间内访问过于频繁的IP,因此在爬取的时候需要设定一定的时间间隔,不过说实话,免费代理很多时候基本都不能用,可能一千个下来只有十几个可以用,而且几分钟之后估 ...

  2. 用fiddler测试ip轮询

    测试业务: 服务端根据域名配置了三台服务器ip,测试ip轮询的逻辑 测试方法: 使用fiddler配置hosts即可 1.1.1.1 第一台ip 1.1.1.1 第二台ip 1.1.1.1 第三台ip ...

  3. android获取Mac地址和IP地址

    获取Mac地址实际项目中测试了如下几种方法:(1)设备开通Wifi连接,获取到网卡的MAC地址(但是不开通wifi,这种方法获取不到Mac地址,这种方法也是网络上使用的最多的方法) //根据Wifi信 ...

  4. 【Go】获取用户真实的ip地址

    原文链接:https://blog.thinkeridea.com/201903/go/get_client_ip.html 用户请求到达提供服务的服务器中间有很多的环节,导致服务获取用户真实的 ip ...

  5. C#获取路由器外网IP,MAC地址

    C#实现的获取路由器MAC地址,路由器外网地址.对于要获取路由器MAC地址,一定需要知道路由器web管理系统的用户名和密码.至于获取路由器的外网IP地址,可以不需要知道路由器web管理系统的用户名和密 ...

  6. 获取本机的IP地址和mac地址

    1. 以前一直用ipconfig来查看ip地址,哈哈哈,现在发现挺好玩 #获取本机的IP地址和mac地址 import uuid import socket def get_mac_address() ...

  7. 【Win 10 应用开发】获取本机的IP地址

    按照老规矩,也是朋友的建议,老周今天在吹牛之前,先讲一个小故事. 有朋友问我,老周,你现在还发短信吗,你每个月用多少电话费?唉,实话说,现在真的发短信不多了,套餐送的130条短信,每月都发不了一条.至 ...

  8. 获取IP地址 & 伪装IP地址发送请求

    //获取请求客户端IP地址   public final static String getIpAddress(HttpServletRequest request) throws IOExcepti ...

  9. Java里面获取当前服务器的IP地址

    public static void main(String[] args) { try { InetAddress address = InetAddress.getLocalHost();//获取 ...

随机推荐

  1. 自动微分(AD)学习笔记

    1.自动微分(AD) 作者:李济深链接:https://www.zhihu.com/question/48356514/answer/125175491来源:知乎著作权归作者所有.商业转载请联系作者获 ...

  2. Mybatis经常被问到的面试题

    1. #{}和${}的区别是什么? #{}是预编译处理,${}是字符串替换. Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值: ...

  3. Parallels Desktop 重装系统

    安装教程,大家可以在网上找找 现在我想重装系统,怎么弄呢? 1.~/Documents/Parallels 目录下那个PVM后缀的文件直接删除 2.重装找开虚拟机,会弹出一个框,说找不到系统,点击删除 ...

  4. windows----------如何修改windows服务器远程端口

    远程连接并登录到 Windows 实例. 选择开始 > 运行,输入 regedit 打开注册表编辑器. 查找 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSe ...

  5. Go 初体验 - 令人惊叹的语法 - defer.3 - defer 函数参数计算时机

    defer 函数的参数计算时机 定义一个 defer 函数,接收参数 n: 调用: 输出: 有点惊讶,为什么不是 100 200 200? go 语言里,defer 函数的参数是在定义位置被计算的,也 ...

  6. Django框架详细介绍---视图系统

    Django视图系统 1.什么是视图 在Django中,一个视图函数/类,称为视图.实质就是一个用户自定义的简单函数,用来接收WEB请求并xing响应请求,响应的内容可以是一个HTML文件.重定向.一 ...

  7. OpenStack-Neutron-安全组

    neutron中目前安全组的实现是使用iptables来实现的 创建安全组 创建安全组的时候默认有两条“出”规则(ipv4和ipv6) “default”安全组不仅有“出”规则,还有“入”规则.默认有 ...

  8. n皇后问题——关于斜线的编号

    题目大意:在n*n的棋盘中,放置n个皇后(同一行.同一列.同一斜线,只有一个皇后) 这道题是一道非常经典的dfs模板题,同一行.同一列的判断不是很难,但同一斜线有一定的难度,下面给出关于斜线编号的解决 ...

  9. 【Spark-core学习之四】 Spark任务提交

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk1.8 scala-2.10.4(依赖jdk1.8) spark ...

  10. Python之循环

    目标 程序的三大流程 while 循环基本使用 break 和 continue while 循环嵌套 一 程序的三大流程 在程序开发中,一共有三种流程方式: 顺序 —— 从上向下,顺序执行代码 分支 ...