# 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. ios dispatch_async使用

    一般这样使用: dispatch_async(dispatch_get_global_queue(0, 0),^{ //进入另一个线程 dispatch_async(dispatch_get_main ...

  2. 018-并发编程-java.util.concurrent.locks之-ReentrantReadWriteLock可重入读写锁

    一.概述 ReentrantLock是一个排他锁,同一时间只允许一个线程访问,而ReentrantReadWriteLock允许多个读线程同时访问,但不允许写线程和读线程.写线程和写线程同时访问.相对 ...

  3. javaweb(4)之Listener&Filter

    监听器 (Listener) 介绍 监听器用于监听 web 应用中某些对象.信息的创建.销毁.增加,修改,删除等动作的发生,然后作出相应的响应处理.当范围对象的状态发生变化的时候,服务器自动调用监听器 ...

  4. ionic 需要注意的知识点

  5. Django进阶之中间件

    中间件简介 django 中的中间件(middleware),在django中,中间件其实就是一个类,在请求到来和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法. 在djang ...

  6. php 实现简拼

    <blockquote>model::::::::::::::::::::::::::::: function getFirstCharter($str){if(empty($str)){ ...

  7. git之关联远程仓库

    1.创建本地仓库. 2.与远程仓库交互. ----------------------------------------------------------------------------

  8. Rdlc 参数问题

    需要sql中的参数自动在生成报表的时候生成的方法: 例如有这样的sql需要自动生成:BeginTime 和 EndTime 两个参数: DECLARE @BeginTime DATETIME='201 ...

  9. 通用订单搜索的API设计得失录

    先把 Joshua Bloch 大神的 API PDF 放在这里膜拜下:"How to Design a Good API and Why it Matters.pdf" 总述 在 ...

  10. P2P原理(转)

    P2P(Peer to Peer)对等网络 P2P技术属于覆盖层网络(Overlay Network)的范畴,是相对于客户机/服务器(C/S)模式来说的一种网络信息交换方式.在C/S模式中,数据的分发 ...