当前位置: 首页 > news >正文

网站备案信息批量查询网站网络安全怎么做

网站备案信息批量查询,网站网络安全怎么做,通信网站模板,纪念平台网站建设本地代理IP池 代理IP池是一种由多个代理IP构成的集合#xff0c;可以通过接口等方式随时获取可用的代理IP。通俗地打个比方#xff0c;它就是一个池子#xff0c;里面装了很多代理ip。代理IP具有以下几个特征#xff1a; 1、池子里的ip是有生存周期的#xff0c;它们将被…本地代理IP池 代理IP池是一种由多个代理IP构成的集合可以通过接口等方式随时获取可用的代理IP。通俗地打个比方它就是一个池子里面装了很多代理ip。代理IP具有以下几个特征 1、池子里的ip是有生存周期的它们将被定期验证其中失效的将被剔除。 2、池子里的ip是有补充渠道的不断会有新的代理ip加入其中。 3、池子中的代理ip是可以被随机取出来使用的。 这样代理池中始终有多个不断更换的、有效的代理ip且我们可以无间隔随机从池子中取出代理ip然后让爬虫程序使用代理ip访问目标网站解决在爬虫或其他应用中遇到的封禁、限制等问题。 代理IP池功能组件 1.IP池管理器用于管理IP池包括IP地址的添加、删除、查询和更新等操作。 2.代理IP获取器用于从外部资源中获取代理IP例如从公开代理IP网站上爬取代理IP、从代理服务商订购代理IP等。 3.IP质量检测器用于检测代理IP的质量包括代理IP的连接速度、稳定性、匿名性等特征。 4.数据存储器用于存储IP池和代理IP的数据例如使用MySQL等关系型数据库、Redis等非关系型数据库等。 5。API接口层用于接收来自应用程序的请求调用IP池管理器、代理IP获取器、IP质量检测器和数据存储器等组件进行处理并返回相应的数据结果。 6.应用程序用于调用API接口层实现代理IP的使用、监控和管理等功能。 各个组件功能说明及示例代码 IP池管理器 添加新的IP地址到IP池中 删除不需要的IP地址 查询IP池中的可用IP地址 更新IP池中的IP地址信息。 class IPPoolManager:def __init__(self, db):self.db db # 数据库连接def add_ip(self, ip, port, protocolhttp, source, statusnew): 添加新的IP地址到IP池 cursor self.db.cursor()sql INSERT INTO ip_pool(ip, port, protocol, source, status) VALUES(%s, %s, %s, %s, %s)data (ip, port, protocol, source, status)cursor.execute(sql, data)self.db.commit()return cursor.lastrowid # 返回添加记录的IDdef delete_ip(self, ip_id): 从IP池中删除不需要的IP地址 cursor self.db.cursor()sql DELETE FROM ip_pool WHERE id%scursor.execute(sql, (ip_id,))self.db.commit()def get_ip(self, statusnew): 查询IP池中的可用IP地址 cursor self.db.cursor()sql SELECT * FROM ip_pool WHERE status%s ORDER BY id DESC LIMIT 1cursor.execute(sql, (status,))result cursor.fetchone()return resultdef update_status(self, ip_id, status): 更新IP池中的IP地址信息 cursor self.db.cursor()sql UPDATE ip_pool SET status%s WHERE id%scursor.execute(sql, (status, ip_id))self.db.commit() 代理IP获取器 负责定时最小提取间隔从代理IP服务商那里调用API接口获取代理IP。当然也可以爬取免费代理IP但为了提高工作效率建议购买优质代理IP这里使用了站大爷代理IPhttps://www.zdaye.com。注册后可以免费试用所有的套餐2小时生成API接口后就可以提取到代理IP 这里以某一代理IP接口为例实现一个简单的代理IP获取器需要使用requests库 import requestsdef get_ip():url https://www.zdaye.com //在后台的实例管理里面可以直接生成api接口选择JSON格式res requests.get(url)# print(res.text)for i in json.loads(res.text)[data]:print(i, type(i))ip {http: str(i[ip]) : str(i[port]),https: str(i[ip]) : str(i[port])} return ip 注意我们拿到的代理是 {ip:117.57.91.154,port:40021} 这种样子的 爬虫使用的代理要装成{http: 163.125.104.6:40011, https: 163.125.104.6:40011}这种样子。 IP质量检测器 IP质量检测器的作用是检测代理IP的质量包括代理IP的连接速度、稳定性、匿名性等特征。这里以验证代理IP的可用性为例实现一个简单的IP质量检测器 import requestsclass IPChecker:def __init__(self):self.timeout 5 # 设置超时时间self.headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36}def check_ip(self, ip, port): 验证代理IP的可用性 proxies {http: http://%s:%s % (ip, port), https: https://%s:%s % (ip, port)}try:response requests.get(http://www.baidu.com, headersself.headers, proxiesproxies, timeoutself.timeout)if response.status_code 200:return Trueelse:return Falseexcept:return False 上面的代码使用requests库发送HTTP请求通过设置proxies参数和timeout参数来验证代理IP是否可用如果能正常访问百度网站则验证通过返回True否则返回False。 数据存储器 数据存储器的作用是存储IP池和代理IP的数据例如使用MySQL等关系型数据库、Redis等非关系型数据库等。这里以MySQL为例实现一个简单的数据存储器。 import pymysqlclass MySQLDataStorage:def __init__(self, host, port, user, password, database):self.host hostself.port portself.user userself.password passwordself.database databasedef connect(self): 连接数据库 self.db pymysql.connect(hostself.host, portself.port, userself.user, passwordself.password, databaseself.database)def disconnect(self): 断开数据库连接 self.db.close()def create_table(self): 创建IP池表 cursor self.db.cursor()sql CREATE TABLE IF NOT EXISTS ip_pool (id INT(11) NOT NULL AUTO_INCREMENT,ip VARCHAR(50) NOT NULL,port VARCHAR(10) NOT NULL,protocol VARCHAR(10) NOT NULL,source VARCHAR(50) NOT NULL,status VARCHAR(10) NOT NULL,created_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (id)) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;cursor.execute(sql)self.db.commit()def insert(self, ip, port, protocol, source, status): 添加新的IP地址到IP池 cursor self.db.cursor()sql INSERT INTO ip_pool(ip, port, protocol, source, status) VALUES(%s, %s, %s, %s, %s)data (ip, port, protocol, source, status)cursor.execute(sql, data)self.db.commit()return cursor.lastrowid # 返回添加记录的IDdef delete(self, ip_id): 从IP池中删除不需要的IP地址 cursor self.db.cursor()sql DELETE FROM ip_pool WHERE id%scursor.execute(sql, (ip_id,))self.db.commit()def select(self, statusnew): 查询IP池中的可用IP地址 cursor self.db.cursor()sql SELECT * FROM ip_pool WHERE status%s ORDER BY id DESC LIMIT 1cursor.execute(sql, (status,))result cursor.fetchone()return resultdef update(self, ip_id, status): 更新IP池中的IP地址信息 cursor self.db.cursor()sql UPDATE ip_pool SET status%s WHERE id%scursor.execute(sql, (status, ip_id))self.db.commit() 上面的代码封装了MySQL的连接、断开连接、创建表、增删改查等操作可以通过调用接口实现IP池数据库的交互。注意这里使用了execute()函数的带参数方式来防止SQL注入攻击。 API接口层 API接口层的作用是提供API接口让其他程序可以与IP池系统进行交互例如查询可用代理IP、获取新的代理IP等。这里以Python Flask框架为例实现一个简单的API接口层。 from flask import Flask, jsonify from ip_pool_manager import IPPoolManagerapp Flask(__name__) manager IPPoolManager() # 初始化IP池管理器app.route(/) def hello_world():return Hello, World!app.route(/get) def get_proxy(): 查询可用代理IP result manager.get_ip()if result:ip result[ip]port result[port]protocol result[protocol]manager.update_status(result[id], using) # 更新IP状态为使用中return jsonify({ip: ip, port: port, protocol: protocol})else:# 如果没有可用IP则返回空return app.route(/add/ip/port) def add_proxy(ip, port): 添加新的代理IP manager.add_ip(ip, port)return okapp.route(/delete/int:id) def delete_proxy(id): 删除不需要的代理IP manager.delete_ip(id)return okif __name__ __main__:app.run() 上面的代码使用了Flask框架实现了三个接口 - /get查询可用代理IP - /add添加新的代理IP - /delete删除不需要的代理IP。 其中get_proxy()函数从IP池管理器中获取可用代理IP并更新IP状态为使用中返回JSON格式的数据add_proxy()函数向IP池管理器中添加新的代理IPdelete_proxy()函数从IP池管理器中删除不需要的代理IP。启动Flask应用程序后其他程序可以通过HTTP请求调用这些接口与IP池系统进行交互。 应用程序 以下是一个简单的应用程序示例。它使用IP池系统提供的可用代理IP并使用requests库实现了一个简单的爬虫示例 import requests from bs4 import BeautifulSoup from ip_checker import IPChecker from ip_pool_manager import IPPoolManager import timedef main():checker IPChecker()manager IPPoolManager()while True:ip_info manager.get_ip() # 获取可用代理IPif ip_info:ip ip_info.get(ip)port ip_info.get(port)protocol ip_info.get(protocol)if checker.check_ip(ip, port):print(f使用代理IP {ip}:{port} 获取数据)proxies {http: f{protocol}://{ip}:{port}, https: f{protocol}://{ip}:{port}}response requests.get(http://www.baidu.com, proxiesproxies)# 这里可以根据需要解析返回的数据soup BeautifulSoup(response.text, html.parser)print(soup.title.string)time.sleep(5) # 延迟5秒后继续获取else:# 如果代理IP不可用则将其状态设置为失效manager.update_status(ip_info[id], invalid)else:# 如果没有可用代理IP则等待一段时间后再尝试获取time.sleep(60)if __name__ __main__:main() 以上代码的主函数中使用IP池系统提供的可用代理IP使用requests库发送HTTP请求获取返回的数据。如果返回的数据解析成功控制台输出网站的标题然后等待5秒后继续获取。如果代理IP不可用或者IP池中没有可用的IP程序会等待一段时间后再尝试获取。
http://www.zqtcl.cn/news/727590/

相关文章:

  • 做期货都看那些网站淮北网
  • 网站建设的需求怎么写网站头条怎么做
  • 宜春seoseo网站自动推广
  • 张家界酒店网站建设人人设计网网址
  • 电脑系统做的好的网站什么网站做一手房好
  • 为什么用MyEclipse做网站上海境外输入
  • 做的比较好的小众网站go 是做网站的吗
  • 手机网站快速建设网站接入支付宝需要网站备案吗
  • 贵州省住房城乡建设厅网站农业营销型网站源码
  • 网站开发使用哪种语言wordpress 免费主机
  • 山东免费网站制作绿色食品网站模板
  • 做搜狗网站优化点广州网站开发人
  • 网站建设违法行为广东seo快速排名
  • 体育彩票网站开发该做哪些步骤深圳网站建设策划方案
  • 金华网站建设电话做网站用虚拟机还是服务器
  • 整容医院网站建设目的顺企网贵阳网站建设
  • 微网站 htmlseo做的好的网站
  • 免费做网站推荐东平网页设计
  • 所有复刻手表网站wordpress 标题简码
  • 云南建设厅建设网站首页网站建设s
  • 网站用户需求报告网站充值怎么做的
  • 找代码的网站有一个网站是做釆购的是什么网
  • 做外贸最好的网站有哪些php网站开发工程师待遇
  • 做推文封面的网站首页>新闻>正文 网站怎么做
  • 黄页推广引流网站企业网站导航菜单
  • 合肥专门做网站的公司广告代理商是什么意思
  • wordpress显示一个类目seo推广
  • 营销型电子商务网站特点如何申请免费空间和域名
  • 网站建设 主要学是么vk汉化网站谁做的
  • 做英文网站费用多少学校网站开发毕业设计