草庐IT

爬虫代理 IP 池及隧道代理(2022.05.24)

爬虫代理IP池及隧道代理目录爬虫代理IP池及隧道代理1.代理IP池1.1简介1.2实现1.3测试2.隧道代理2.1简介2.2实现2.2.1目录结构2.2.2配置文件2.2.3openresty2.3测试日常开发中,偶尔会遇到爬取网页数据的需求,为了隐藏本机真实IP,常常会用到代理IP池,本文将基于openresty与代理IP池搭建更为易用的隧道代理。1.代理IP池1.1简介代理IP池即在数据库中维护一个可用的IP代理队列,一般实现思路如下:定时从免费或收费代理网站获取代理IP列表;将代理IP列表以Hash结构存入Redis;定时检测代理IP的可用性,剔除不可用的代理IP;对外提供API接口用来

爬虫代理 IP 池及隧道代理(2022.05.24)

爬虫代理IP池及隧道代理目录爬虫代理IP池及隧道代理1.代理IP池1.1简介1.2实现1.3测试2.隧道代理2.1简介2.2实现2.2.1目录结构2.2.2配置文件2.2.3openresty2.3测试日常开发中,偶尔会遇到爬取网页数据的需求,为了隐藏本机真实IP,常常会用到代理IP池,本文将基于openresty与代理IP池搭建更为易用的隧道代理。1.代理IP池1.1简介代理IP池即在数据库中维护一个可用的IP代理队列,一般实现思路如下:定时从免费或收费代理网站获取代理IP列表;将代理IP列表以Hash结构存入Redis;定时检测代理IP的可用性,剔除不可用的代理IP;对外提供API接口用来

OpenFunction v0.8.0 发布:通过 Dapr Proxy 加速函数启动

相较于其他函数计算项目,OpenFunction有很多独特的功能,其中之一便是通过Dapr与各种后端服务(BaaS)无缝集成。目前OpenFunction已经支持了Dapr的pub/sub和bindings构建模块,未来还会支持更多功能。截止到v0.7.0,OpenFunction与BaaS的集成还不算特别丝滑,需要在每个函数实例的Pod中注入一个DaprSidecar容器,这就会导致一个问题:整个函数实例的启动时间会受到DaprSidecar容器启动时间的影响,甚至DaprSidecar容器可能会比函数容器本身消耗的资源更多。为了解决这个问题,OpenFunction发布了v0.8.0,引入

OpenFunction v0.8.0 发布:通过 Dapr Proxy 加速函数启动

相较于其他函数计算项目,OpenFunction有很多独特的功能,其中之一便是通过Dapr与各种后端服务(BaaS)无缝集成。目前OpenFunction已经支持了Dapr的pub/sub和bindings构建模块,未来还会支持更多功能。截止到v0.7.0,OpenFunction与BaaS的集成还不算特别丝滑,需要在每个函数实例的Pod中注入一个DaprSidecar容器,这就会导致一个问题:整个函数实例的启动时间会受到DaprSidecar容器启动时间的影响,甚至DaprSidecar容器可能会比函数容器本身消耗的资源更多。为了解决这个问题,OpenFunction发布了v0.8.0,引入

【Python】爬虫实战-基于代理池的高并发爬虫

最近在写一个基于代理池的高并发爬虫,目标是用单机从某网站API爬取十亿级别的JSON数据(均为公开非敏感信息)。代理池有两种方式能够实现爬虫对代理池的充分利用:搭建一个TunnelProxy服务器维护代理池在爬虫项目内部自动切换代理所谓TunnelProxy实际上是将切换代理的操作交给了代理服务器,很多市面上的代理软件都有此类功能。如果要自行搭建可参考以下项目:GitHub-urdr-gungnir/TunnelProxyGitHub-pingc0y/go_proxy_pool考虑到高并发,在爬虫项目内部切换代理更加灵活一些。代理池选一个能用的就行:GitHub-jhao104/proxy_p

【Python】爬虫实战-基于代理池的高并发爬虫

最近在写一个基于代理池的高并发爬虫,目标是用单机从某网站API爬取十亿级别的JSON数据(均为公开非敏感信息)。代理池有两种方式能够实现爬虫对代理池的充分利用:搭建一个TunnelProxy服务器维护代理池在爬虫项目内部自动切换代理所谓TunnelProxy实际上是将切换代理的操作交给了代理服务器,很多市面上的代理软件都有此类功能。如果要自行搭建可参考以下项目:GitHub-urdr-gungnir/TunnelProxyGitHub-pingc0y/go_proxy_pool考虑到高并发,在爬虫项目内部切换代理更加灵活一些。代理池选一个能用的就行:GitHub-jhao104/proxy_p

高并发系统设计之缓存

本文已收录至Github,推荐阅读?Java随想录微信公众号:Java随想录这篇文章来讲讲缓存。缓存是优化网站性能的第一手段,目的是让访问速度更快。说起缓存,第一反应可能想到的就是Redis。目前比较好的方案是使用多级缓存,如CPU→Ll/L2/L3→内存→磁盘就是一个典型的例子,CPU需要数据时先从L1读取,如果没有找到,则查找L2/L3读取,如果没有,则到内存中查找,如果还没有,会到磁盘中查找。目录堆缓存Nginx代理缓存多级缓存热点Key自动探测堆缓存使用Java堆内存来存储缓存对象。使用堆缓存的好处是没有序列化/反序列化,是最快的缓存。缺点也很明显,当缓存的数据量很大时,GC(垃圾回收

高并发系统设计之缓存

本文已收录至Github,推荐阅读?Java随想录微信公众号:Java随想录这篇文章来讲讲缓存。缓存是优化网站性能的第一手段,目的是让访问速度更快。说起缓存,第一反应可能想到的就是Redis。目前比较好的方案是使用多级缓存,如CPU→Ll/L2/L3→内存→磁盘就是一个典型的例子,CPU需要数据时先从L1读取,如果没有找到,则查找L2/L3读取,如果没有,则到内存中查找,如果还没有,会到磁盘中查找。目录堆缓存Nginx代理缓存多级缓存热点Key自动探测堆缓存使用Java堆内存来存储缓存对象。使用堆缓存的好处是没有序列化/反序列化,是最快的缓存。缺点也很明显,当缓存的数据量很大时,GC(垃圾回收

Nginx同域名下配置多个Vue项目

#HTTPSserverserver{listen443;server_name************.com;sslon;ssl_certificatecert/************.com.pem;ssl_certificate_keycert/************.com.key;ssl_session_timeout5m;ssl_protocolsTLSv1TLSv1.1TLSv1.2;ssl_ciphersECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_prefe

Nginx同域名下配置多个Vue项目

#HTTPSserverserver{listen443;server_name************.com;sslon;ssl_certificatecert/************.com.pem;ssl_certificate_keycert/************.com.key;ssl_session_timeout5m;ssl_protocolsTLSv1TLSv1.1TLSv1.2;ssl_ciphersECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_prefe