首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Nginx反向代理

    反向代理的原理 简单来说就是B站点反代A站点 用户访问B站点 B站点在去获取A站点的资源内容 反向代理的好处是什么? 首先就是安全,因为B站点反代A站点 用户访问B站点即可获取A站点的内容,不用暴露源站的IP也不需要存储数据 其次就是速度,因为B站点不需要存储数据就可以降低网络带宽和服务器的内存及CPU负载,就可以提高访问效率 也不用担心数据被盗取、网站被攻击之类的 当然被D的话还是会死,但是对方不会知道你A站点的IP 这个时候B站点被打死了 你就可以随时换一台服务器域名解析过去接着使用就可以无缝衔接 反代也不用担心数据被某些不道德的服务商盗取或者跑路 因为B站点是不需要存储A站点的任何数据的

    02

    安居客房源信息获取

    最近身边有几个做房产销售的朋友经常在诉苦,找不到客户,没有业绩,所以就比较好奇他们现在的行情,所以今天我们就使用python获取下安居客的一些房源数据。之前分享过很多关于爬虫的实践示例,今天这个也算是实践内容。我们就以户型结构、装修情况、水肥情况进行房源数据获取。 爬取数据的通用流程:1、根据url请求页面,获取页面响应对象2、将页面响应对象转化为对象 3、定位要爬取的数据 4、获取数据。 在上代码之前先和大家交流下网站的反爬。像这样的网站反爬都是比较严的,所以基本的反爬措施也是需要做好的,其中最重要的是代理IP的使用,更是需要高质量的代理效果才可以。高质量的代理有需要的可以考虑下https://www.16yun.cn/#worth。简单的爬虫代码示例如下: #! -- encoding:utf-8 --

    01

    通过python分析微信好友数据

    随着微信的普及,越来越多的人开始使用微信。微信渐渐从一款单纯的社交软件转变成了一个生活方式,人们的日常沟通需要微信,工作交流也需要微信。微信里的每一个好友,都代表着人们在社会里扮演的不同角色。今天这篇文章会基于Python对微信好友进行数据分析,我们可以通过微信好友的性别、头像、签名、位置信息然后采用图表和词云两种形式来呈现结果。工欲善其事,必先利其器也,所以在获取这些数据之前我们需要做好准备工作。首先是爬虫程序的编写,这个没有什么太大的难度,其次是在获取数据时避免触发反爬机制,需要先对获取的数据网站进行分析并做好反爬策略。常见的反爬措施有随机ua的添加,cookie的获取,代理IP的辅助。这些措施里面代理IP的选择要有难度些,因为不是所有的代理都是质量好的,有需要的同学可以试试亿牛云代理https://www.16yun.cn/help/。接下来我们就分享下爬虫程序里面挂上代理获取微信好友信息的效果是怎么样的。

    01

    JVM 《八 JVM JDK代理&CGLib 代理解析》

    前言&背景 现在Spring 什么的好火。 Spring 很经典的一个特性是AOP AOP 的基础是代理。 代理分为静态代理、动态代理。 静态代理,不好处挺明显的,工程中各式各样的代理代码,过于冗余。 动态代理显得就简洁多了。 动态代理在java中现在大约有这么两种技术。JDK 原生反射,字节码操作增强反射(我第一次学到这个的时候感觉特别特别高大上,虽然现在也这么感觉 然后字节码操作技术 比较火的就是ASM了,也就是CGLib所使用的技术。 至于啥是代理,就不多解释了。就是产生一个代理操作来替代原核心操作并且增加一些便利的具有各个场景特性的附加操作。 然后JDK&CGLib表象上或者语法上的区别,一个面向接口、一个面向类、Spring 根据情况使用也可强制。然后单独使用的时候写法儿上的不同。 那在JVM层面去看待这个问题是怎样的呢? 其实本质要讨论的就是Java 反射、字节码操作具体是怎么样的,有什么区别。 先说一个反射的总体概念 反射,顾名思义 反着射,跟常规编写、编译、解释执行不同。我当时看反射的时候挺蒙蔽的,反射?反?射?到系统的看编程思想的RTTI那一块,对于反射的定义还有这个名字多少有点认可了。 下面是百度的解释,感觉挺糟糕的 也就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。 一个比较可取的解释 Instances of the class Class represent classes and interfaces in a running Java application. An enum is a kind of class and an annotation is a kind of interface. Every array also belongs to a class that is reflected as a Class object that is shared by all arrays with the same element type and number of dimensions The primitive Java types (boolean, byte, char, short, int, long, float, anddouble), and the keyword void are also represented as Class objects. 综合起来看,也就是运行期间根据名称去动态的加载及使用一个编译期未知的类,然后根据加载进来的Class对象,来调用该类具体的方法的行为。(静态加载、根据已知信息直接使用) 为什么是反着呢,因为我们常规写程序都是既定使用的类&方法然后import、然后加载产生Class对象&使用类的具体信息 驱动执行。(已知信息使用) 而反射是在运行时除了名称完全未知,通过名称获取&加载进来,然后产生Class对象,通过Class 对象的信息来获取调用这个类具体的内容。(动态加载、透过 Class 获取信息去调用) 当然,这个类通常是远程调用或者别的什么方式来获取使用的。 Java反射也就是上面说的常规过程,来加载&使用一个完全未知的类。 而且JDK代理有个特点,是针对接口来实现的,也就是面向接口来编程,这也就导致了 接口一致而非对象一致。并且Java 反射效率总体来说是比较低下。 为了解决这些个问题,ASM之类的字节码操作技术出现了。

    01
    领券