:
处理爬取成果
while:
url = 首元素出队
if 超时返回:
已经爬完整站,退出循环
启动新线程(爬取(url))
完整代码
from bs4 import BeautifulSoup
import requests
import threading
import time
class LQueue:
def __init__(self):
self._queue = []
self.mutex = threading.Lock()
self.condition = threading.Condition(self.mutex)
def put(self, item):
with self.condition:
self._queue.append(item)
self.condition.notify()
def get_nowait(self):
if not self.empty():
return self._queue.pop(0)
else:
raise IndexError('Empty Queue')
def get(self, timeout=60):
with self.condition:
endtime = time.time() + timeout
while True:
if not self.empty():
return self._queue.pop(0)
else:
remaining = endtime - time.time()
if remaining <= 0.0:
return None
self.condition.wait(remaining)
def has(self, item):
if item in self._queue:
return True
else:
return False
def empty(self):
if self._queue.__len__() == 0:
return True
else:
return False
def find_links(url, queue):
print('Accessing:{}'.format(url))
headers = {
'user-agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.54 Safari/536.5'
}
try:
html = requests.get(url, headers=headers, timeout=30)
html.raise_for_status
html.encoding = html.apparent_encoding
except:
return
soup = BeautifulSoup(html.text, "html.parser")
tds = soup.find('tbody').find_all('td', class_='name four wide')
for td in tds:
if td.find('span', class_='octicon octicon-file-directory') is not None:
# directory enqueue 'cache'
href = 'https://opendev.org' + td.find('a')['href']
if not queue.has(href):
queue.put(href)
elif td.find('span', class_='octicon octicon-file-text') is not None:
href = 'https://opendev.org' + td.find('a')['href']
# 处理爬取成果
cache = LQueue()
link = 'https://opendev.org/openstack/neutron'
cache.put(link)
while True:
url = cache.get(35)
if url is None:
break
threading.Thread(target=find_links, args=(url, cache)).start()
这时候你可以跑一下,体会那种充分利用计算机资源的感觉。不过在这段代码里,我没有写对爬取成果处理的部分。因为我想介绍一个有意思的东西——任务队列。在这个场景中,它跟多线程的作用差不多,但它真正的意义在于能帮我把任务分发到其他机器上去执行,类似的好处还有使用“订阅-发布”让多台机器帮你一起干等等。至于分发什么任务,这就随心所欲了。比如把所有URL成果放进数据库里,再设计一个定时任务,让它每过一会帮你做一次去重操作。 我用的是RQ(RedisQueue),一个很轻量级的 python 任务队列库,RQ 的工作依赖于Redis,并且需要 Redis版本 >= 3.0.0.。我已经安装过了,直接运行。
$ redis-server
注意: 由于我是本地运行、使用,因此Redis侦听localhost:6379,并且我连接它的时候也不需要安全验证。如果你是在不同的机器上,需要合理的修改配置文件。
接着安装rq库
$ pip3 install rq
增加实现 rq 的代码
...
import rq
from redis import Redis
class LQueue:
...
def find_links(url, queue, task_queue):
...
elif td.find('span', class_='octicon octicon-file-text') is not None:
# 把爬取成果发送到任务队列,让 'process_result' 去处理
href = 'https://opendev.org' + td.find('a')['href']
task_queue.enqueue('tasks.process_result', href)
...
cache.put(link)
# 创建任务队列对象,绑定到名叫 'task1' 的worker上
task_queue1 = rq.Queue('task1', connection=Redis.from_url('redis://'))
while True:
url = cache.get(35)
if url is None:
break
threading.Thread(target=find_links, args=(url, cache, task_queue1)).start()
任务队列里有个worker
的概念,当我使用obj.enqueue()
把任务送进队列之后,worker
正这个任务的执行者。即然是交给人家任务,那就得告诉人家怎么干,如果需要加工原材料,那原材料也得一并提供。例如我把一张原始表单发给助理,告诉她明天下班之前按预定模板整理成报表并邮件发送给张三抄给我。助理就是worker。在task_queue.enqueue('tasks.process_result', href)
中,'tasks.process_result'
是任务描述,href
是原始表单。多个worker可以同时绑定到一个队列上,就好比我有多个助理,他们同时帮我干一件事。每个worker也可以分别绑到不同的队列上,就像我把不同的任务交给不同的助理。
在工作目录下创建文件tasks.py
,并添加任务处理代码。我尽量言简意赅,保持页面清爽,就直接print了,想像留给你。
def process_result(href):
print(href)
接着开启一个新的终端窗口,进入到工作目录,启动一个worker
rqworker task1
再试着跑一下,看看worker的控制台是不是像我的一样输出的url内容。
限制并发访问数量
如果一直停留在访问初始连接的字样上,很有可能是刚刚开启的线程数量太大,导致目标站服务器让你“冷静一会”。这时候尝试用浏览器再访问一下初始URL,如果一直连接不成功,就可以确认结果了。 说实话我是非常喜欢那种简单粗爆直接硬来的畅快感,像不堵车的五环一脚油到底。可目标站显然承受不了这种过量的连接。工具在给我们带来便利的同时,它也产生了一定的危害。说到底,关键在于利刃作什么用。切记要在合理合法的范围内收集信息。 像上面的例子实际来说是不可取的,也行不通。我准备再次优化一下,限制它并发访问的数量。
还是先来看看伪码的实现
def 爬取(url):
html = 访问(url)
for td in html:
if 在中找到了:
cache.入队(td.url)
elif 在 中找到了:
处理爬取成果
唤醒因数量过载而被阻塞的线程
while 队列不为空:
url = 首元素出队
if url is None:
已经爬完整站,退出循环
if 计数器过载
等待运行中的线程执行完毕后唤醒我
计数器 ++
多线程爬取(url)
计数器 --
增加限制和唤醒线程的代码
class LQueue:
...
def find_links(url, queue, task_queue, condition):
print('Accessing:{}'.format(url))
headers = {
'user-agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.54 Safari/536.5'
}
try:
html = requests.get(url, headers=headers, timeout=30)
html.raise_for_status
html.encoding = html.apparent_encoding
except:
with condition:
# 异常情况下的唤醒
condition.notify()
return
soup = BeautifulSoup(html.text, "html.parser")
tds = soup.find('tbody').find_all('td', class_='name four wide')
for td in tds:
if td.find('span', class_='octicon octicon-file-directory') is not None:
# directory enqueue 'cache'
href = 'https://opendev.org' + td.find('a')['href']
if not queue.has(href):
queue.put(href)
elif td.find('span', class_='octicon octicon-file-text') is not None:
# send to task queue
href = 'https://opendev.org' + td.find('a')['href']
task_queue.enqueue('tasks.process_result', href)
with condition:
# 正常执行完毕后的唤醒
condition.notify()
cache = LQueue()
link = 'https://opendev.org/openstack/neutron'
cache.put(link)
task_queue1 = rq.Queue('task1', connection=Redis.from_url('redis://'))
condition = threading.Condition(threading.Lock())
# 最多同时开启线程
counter = 5
while True:
url = cache.get(35)
if url is None:
break
if counter <= 0:
with condition:
condition.wait()
counter = counter + 1
threading.Thread(target=find_links, args=(url, cache, task_queue1, condition)).start()
counter = counter - 1
你可能感兴趣的:(对爬取整站进行多线程优化)
ssm051网上医院预约挂号系统(文档+源码)_kaic
开心毕设
汽车 开发语言 javascript vue.js java
摘要如今的信息时代,对信息的共享性,信息的流通性有着较高要求,因此传统管理方式就不适合。为了让医院预约挂号信息的管理模式进行升级,也为了更好的维护医院预约挂号信息,网上医院预约挂号系统的开发运用就显得很有必要。并且通过开发网上医院预约挂号系统,不仅可以让所学的SSM框架得到实际运用,也可以掌握MySQL的使用方法,对自身编程能力也有一个检验和提升的过程。尤其是通过实践,可以对系统的开发流程加深印象
一个财务做的python代码--PDF发票文件信息提取
宾不可
pdf python 职场和发展
一、引言(我为什么做)随着国家不断推行数字发票,现在工作中越来越多的电子发票被收取和开具。这给财务人员高效登记大量发票信息提供了充足的环境。日常中,手动从每张发票中提取关键信息并录入Excel表格不仅耗时费力,还容易出错。本文提出了一种基于Python的自动化解决方案,该方案利用pdfplumber库从PDF格式的电子发票中提取文本信息,并结合正则表达式进行信息匹配和清洗,最后将整理好的数据自动写
C# 面试问题高级:057 - 什么是过滤器 ?
caifox菜狐狸
C# 面试问题高级 c# 开发语言 设计模式 面试 过滤器 Filters
1.过滤器的基本概念过滤器(Filters)是ASP.NETCore框架中的一种机制,用于在应用程序处理请求和响应的不同阶段执行自定义逻辑。它们可以用来实现诸如身份验证、授权、异常处理等功能,从而简化控制器代码并提高代码的可重用性。过滤器的主要作用是在特定的时间点对请求或响应进行干预,例如在执行动作之前或之后,或者在结果生成之前或之后。过滤器可以通过多种方式应用到应用程序中,包括全局应用、控制器级
Pydantic:强大的Python 数据验证库
霍格沃兹测试开发学社
Python语法基础 python 开发语言 单元测试
PydanticPydantic是一个在Python中用于数据验证和解析的第三方库。它提供了一种简单且直观的方式来定义数据模型,并使用这些模型对数据进行验证和转换。Pydantic的一些主要特性:类型注解:Pydantic使用类型注解来定义模型的字段类型。你可以使用Python内置的类型、自定义类型或者其他Pydantic提供的验证类型。数据验证:Pydantic自动根据模型定义进行数据验证。它会
网络安全特性
网络安全King
web安全 安全
网络设备安全特性:手动关闭没有使用的功能和端口,可以提高安全性提高安全性进行登录ssh使用的stelent配置ssh用户的顺序:1.stelentseverenable2.需要创建用户User-ingterfacevty04Authentication-modeaaaProtocolinboundssh//打开ssh功能AaaLocal-user用户名password(simple/cipher)
使用Elasticsearch和Kibana进行查询的语法和编程实践
一起去旅行Coding
elasticsearch 大数据 搜索引擎 编程
Elasticsearch和Kibana是一对强大的组合,用于处理和可视化大规模数据集。Elasticsearch是一个分布式的搜索和分析引擎,而Kibana是一个用于数据可视化和分析的开源工具。在本文中,我们将详细介绍如何使用Elasticsearch和Kibana进行查询,并给出相应的源代码示例。连接到Elasticsearch在开始编写查询之前,我们首先需要连接到Elasticsearch。
机器视觉--图像的运算(加法)
C#Thread
机器视觉 计算机视觉 图像处理 人工智能
一、引言在机器视觉领域,Halcon是一款功能强大且广泛应用的机器视觉软件库。图像的加法运算是其中一种基础且重要的操作,它在很多实际应用场景中都发挥着关键作用,比如图像增强、图像融合等。本文将深入探讨Halcon中图像加法运算的原理、实现方法,并通过具体的演示程序来帮助读者更好地理解和掌握这一操作。二、Halcon图像加法运算原理在Halcon中,图像的加法运算本质上是对两幅图像对应像素点的灰度值
【微服务】spring状态机模式使用详解
小码农叔叔
springboot 入门到精通 spring springboot相关 spring状态机模式 spring状态机使用 spring状态机
一、前言在很多系统中,通常会涉及到某个业务需要进行各种状态的切换操作,例如在审批流程场景下,某个审批的向下流转需要依赖于上一个状态的结束,再比如电商购物场景中,一个订单的生命周期往往伴随着不同的状态,比如待支付,支付完成,已发货等等,状态的存在,让一个业务的完整流程得以串联,所以状态在真实的场景中具有重要的意义。二、spring状态机介绍在开始学习spring状态机之前,有一些概念需要弄清楚,弄清
信息安全专业毕业设计题目汇总:网络安全
微光DeepLearning
毕设选题 信息安全 毕业设计 算法
亲爱的同学们,转眼间我们已经迎来了大四,这一年充满了挑战与机遇。大家忙着备考研究生、公务员、教师资格证,或是寻找实习机会,同时还要面对毕业设计的重任。对于毕业设计,很多同学可能会感到陌生,不知道从何下手,也不确定自己适合哪些方向的课题。为此,我整理了一个毕业设计选题专栏,希望能为大家提供一些灵感和建议。无论你对毕业设计有任何疑问,欢迎随时来问我哦!对毕设有任何疑问都可以问学长哦!前言在计算机专业的
实战代码优化:数组和Set遍历的时间复杂度
wujiada001
# 实战优化 java 开发语言
优化前代码publicstaticBooleanqueryParamContrast(Stringparams){if(params.length()>4){returnfalse;}for(Stringcity:cityArray){if(StringUtils.equals(city,params)){returntrue;}}returnfalse;}publicstaticString[]
探索Python数组工具类 ArrayUtils:功能强大的数组操作助手
FinkGO小码
Python python 开发语言 程序人生 numpy pycharm 课程设计 经验分享
引言在Python编程的世界里,数组(通常以列表list形式呈现)是一种极为常用的数据结构。无论是数据处理、算法实现还是日常的编程任务,对数组进行高效且便捷的操作都是必不可少的。然而,Python内置的数组操作方法虽然丰富,但在实际开发中,我们可能需要将一些常用的操作封装起来,以提高代码的复用性和可维护性。今天,我们就来详细介绍一个自定义的Python数组工具类ArrayUtils,它将众多实用的
什么是重绘?什么是回流?如何减少回流?
Ashy-
前端面试题 前端笔记 css3
重绘是指当元素样式发生改变,但不影响其布局的情况下,浏览器重新绘制元素的过程。例如修改元素的背景色、字体颜色等回流是指元素布局属性发生改变,需要重新计算元素在页面中的布局位置时,浏览器重新进行布局的过程例如元素的宽度高度位置改变如何减少回流?适用css动画代替JavaScript动画css动画利用GPU加速,在性能方面通常比JavaScript动画更高效。使用css的transform和opaci
python 登录接口_(转载)Python 的 OAuth 登录接口 python-oauth2
weixin_39923110
python 登录接口
前言python-oauth2是Python语言的OAuth2的实现,包括客户端和服务器端。该项目经过完整的测试。它拥有一下特点:100%单元测试覆盖。完全去掉了DataStore对象。所有的类名不再带有OAuth前缀。Request类生产字典对象。不再支持Python2.3。Client类是在httplib2基础上进行的扩展。文档中的示例全用的是Twitter,包括以下内容:基本的Twitter
ssm051网上医院预约挂号系统(文档+源码)_kaic
开心工作室
计算机文章 毕业设计 java 开发语言 汽车
摘要如今的信息时代,对信息的共享性,信息的流通性有着较高要求,因此传统管理方式就不适合。为了让医院预约挂号信息的管理模式进行升级,也为了更好的维护医院预约挂号信息,网上医院预约挂号系统的开发运用就显得很有必要。并且通过开发网上医院预约挂号系统,不仅可以让所学的SSM框架得到实际运用,也可以掌握MySQL的使用方法,对自身编程能力也有一个检验和提升的过程。尤其是通过实践,可以对系统的开发流程加深印象
AI 大模型应用数据中心建设:高性能计算与存储架构
AI天才研究院
计算 AI大模型企业级应用开发实战 DeepSeek R1 & 大数据AI人工智能大模型 java python javascript kotlin golang 架构 人工智能 大厂程序员 硅基计算 碳基计算 认知计算 生物计算 深度学习 神经网络 大数据 AIGC AGI LLM 系统架构设计 软件哲学 Agent 程序员实现财富自由
《AI大模型应用数据中心建设:高性能计算与存储架构》关键词:AI大模型,数据中心建设,高性能计算,存储架构,分布式系统,能耗优化,运维管理。摘要:本文深入探讨了AI大模型应用数据中心建设中的高性能计算与存储架构。首先回顾了AI大模型的发展历程和数据中心的含义,然后详细解析了高性能计算架构,包括计算节点、编程模型和网络技术。接着,讨论了存储架构,包括存储类型、分布式存储系统和数据一致性策略。本文还提
树莓派通过手机热点,无线连接PC端电脑,进行远程操作
Epiphany_ZZW
树莓派 智能手机
树莓派通过手机热点实现无线连接具有以下几点优势:1.该方式能够联网,方便在项目开发时下载一些数据包。2.该方式能够通过手机端查看树莓派IP地址(有些情况树莓派ip地址会发生改变)借鉴链接如下:树莓派的使用网线及无线连接方法及手机连接树莓派_opencv镜像具体操作方式如下:打开终端:pi@raspberrypi:~$sudonano/etc/wpa_supplicant/wpa_supplican
C++11 学习笔记
毛驴要倒着骑
c++ 学习 笔记
EffectiveModernC++第一章新特性类型推导auto关键字:隐式定义,也是强类型定义。在编译期让编译器自动推断出变量类型以便分配内存,必须在定义时进行初始化decltype关键字:获取表达式的类型typedef重定义一个模板需要借助外敷类,但是using别名语法覆盖了typedef全部功能。使用using重定义模板会更简洁,定义函数指针会更加清晰。templatestructstr_m
JVM调优篇
java
章四JVM调优介绍JVM调优内容,JVM调优是为了解决性能瓶颈、优化资源利用和提高系统吞吐量的重要手段。调优主要围绕内存管理、垃圾回收、线程并发和启动性能等方面展开调优目标响应时间:尽量降低延迟,减少GC停顿时间吞吐量:尽量提高系统处理能力,减少GC时间占总时间的比例内存使用:优化堆、栈等内存分配,避免内存泄漏和内存溢出基本流程明确调优目标:响应时间、吞吐量或内存占用收集基线数据:通过监控工具(如
MySQL数据表添加字段(三种方式)+MySQL约束概述
m0_74823264
mysql adb android
数据表是由行和列构成的,通常把表的“列”称为字段(Field),把表的“行”称为记录(Record)。随着业务的变化,可能需要在已有的表中添加新的字段。MySQL允许在开头、中间和结尾处添加字段。在末尾添加字段一个完整的字段包括字段名、数据类型和约束条件。MySQL添加字段的语法格式如下:ALTERTABLEADD[约束条件];对语法格式的说明如下:为数据表的名字;为所要添加的字段的名字;为所要添
AIMv2:多模态自回归预训练的视觉新突破
人工智能
AIMv2:多模态自回归预训练的视觉新突破阅读时长:19分钟发布时间:2025-02-17近日热文:全网最全的神经网络数学原理(代码和公式)直观解释欢迎关注知乎和公众号的专栏内容LLM架构专栏知乎LLM专栏知乎【柏企】公众号【柏企科技说】【柏企阅文】导言视觉模型在人工智能领域的地位愈发重要,从图像识别、目标检测到多模态理解,其应用场景不断拓展。在大规模数据集上进行预训练,能助力模型学习丰富的视觉特
基于ImageEffect实现图片编辑
场景描述使用ImageEffect接口实现对图片添加滤镜链,添加的滤镜链由系统提供的对比度、亮度、裁剪等滤镜与自定义滤镜构成,以此实现对图片的编辑。方案描述在arkts侧解码resources下的图片,获取image.pixelMap,并设置图片滤镜亮度、对比度、裁剪等参数,调用napi接口将image.PixelMap和滤镜参数传递到native侧。native侧将获取到的image.Pixel
FastAPI:解锁高性能API开发的密钥,轻松构建现代Web服务
醉心编码
人工智能基础 fastapi 前端
FastAPI:解锁高性能API开发的密钥,轻松构建现代Web服务一、核心特点二、应用场景三、技术优势四、安装与基本用法五、社区与文档FastAPI是一个基于Python的现代、快速(高性能)的Web框架,专门用于构建APIs,特别是基于Python的RESTfulAPIs。它以其高性能、易用性和可扩展性而闻名,适合开发者、数据科学家和机器学习工程师等多种岗位使用。以下是对FastAPI的详细介绍
基于FastAPI使用JWT技术实现的OAuth2用户认证接口
火云牌神
fastapi AI编程实战 jwt fastapi
文章目录关于OAuth2关于JWT安装依赖准备用户数据库关于**user_dict处理用户密码和token/令牌关于hash/哈希实现登录和获取用户信息接口关于OAuth2PasswordRequestForm启动程序测试效果身份验证获取当前登录用户信息用未激活用户测试总结查看完整代码本文阐述了如何基于FastAPI框架实现OAuth2用户认证,其中使用哈希算法对密码进行了加密,使用JWT持有令牌
图片绘制到Canvas上并能缩放和平移
canvashtml
有时候我们需要预览图片,对图片进行缩放平移等操作,这时候发现用img标签就不好用了。这时候就可以用我这个帖子的代码实现你要的效果。格式支持:只要能在canvas上渲染的图片都能做缩放平移。如果想缩放后还能把图片下载到本地,请自己调用canvas的api即可。特性:小于canvas大小,则默认不缩放。大于canvas则以最长边为单位来缩放。效果如下:将下方代码新建一个html,在浏览器打开就能看到效
一个简易的 Vue-Ref 响应式系统
简易的Ref数据响应式+Renderer渲染器本案例实现的响应式效果非常有限,只做简单的demo演示,本案例既不是基于Object.defineProperty,也不是基于Proxy实现的响应式,而是基于存取器,其实都差不多。准备一个__Ref__,它可以将简单数据类型包装为一个响应式对象。class__Ref{#privateValue;#privateRely;//"桶"收集所有对#priva
Audio-Visual Speech Enhancement(视听语音增强)领域近三年研究进展与国内团队及手机厂商动态分析
AndrewHZ
深度学习新浪潮 智能手机 算法 计算机视觉 硬件架构 硬件工程 智能硬件
一、视听语音增强领域近三年研究进展多模态融合与模型轻量化多模态特征融合:中国科学技术大学团队提出通过引入超声舌头图像和唇部视频的联合建模,结合知识蒸馏技术,在训练阶段利用教师模型传递舌部运动知识,从而在推断时仅依赖唇部视频即可提升语音增强效果。此外,中科院声学所提出基于泰勒展开的模型架构,将幅度-相位解耦与空间-谱域解耦重新建模,提升算法可解释性并优化性能。轻量化模型设计:中国科大与腾讯天籁实验室
C语言中的类型转换:自动与强制转换的全解析
时倾708
c语言 c++ 算法
在编写C程序时,类型转换是确保数据正确性和一致性的关键环节。无论是隐式转换还是显式转换,都各有特点和应用场景。本文将详细探讨C语言中的类型转换机制,帮助您更好地理解并在实际编码中灵活运用这些知识。类型转换的重要性类型转换是确保程序正确运行的重要基础。在不同数据类型之间进行操作时,编译器需要确保数据的一致性。无论是隐式转换还是显式转换,都在不同的情境下发挥着不可或缺的作用。自动类型转换(隐式转换)自
C语言运算符详解(一)算术运算符
倔强的小石头_
C语言 c语言 c++
目录一、算术运算符的分类(一)基本算术运算符(二)自增和自减运算符二、算术运算符的优先级和结合性(一)优先级(二)结合性三、注意事项(一)数据类型转换(二)整数除法的截断(三)自增和自减运算符的副作用在C语言编程中,算术运算符起着至关重要的作用。它们允许我们对数值数据进行各种数学运算,从而实现复杂的计算和逻辑。本文将详细介绍C语言中的算术运算符,包括其类型、用法以及一些需要注意的要点。一、算术运算
AI 发展的第一驱动力:人才引领变革
倔强的小石头_
热点时事 人工智能
在科技蓬勃发展的当下,AI成为了时代的焦点,然而其发展并非一帆风顺,究竟什么才是推动AI持续前行的关键力量呢?目录AI发展现状剖析期望与现实的落差落地困境根源人才:AI发展的核心动力编辑技术突破的引领者行业融合的推动者人才驱动下的AI多元赋能创新应用场景加速产业升级培育AI人才的战略路径教育体系革新企业人才战略AI发展现状剖析期望与现实的落差近年来,全球科技大厂纷纷将目光聚焦于人工智能领域,对其寄
SpringBoot (看完就懂)
刘小炮吖i
Java后端开发面试题 Java spring boot 后端 java 面试 spring 职场和发展 开发语言
一、到底什么是SpringBoot?很多初学者在接触Java开发时,常常会听到SpringBoot这个词,但却对它的概念和作用感到模糊。简单来说,SpringBoot是由Pivotal团队开发的一个基于Spring框架的开源框架,它的主要目标是简化Spring应用的初始搭建以及开发过程。在传统的Spring项目开发中,开发者需要进行大量的配置工作,例如配置Servlet容器、配置各种Bean的依赖
312个免费高速HTTP代理IP(能隐藏自己真实IP地址)
yangshangchuan
高速 免费 superword HTTP代理
124.88.67.20:843
190.36.223.93:8080
117.147.221.38:8123
122.228.92.103:3128
183.247.211.159:8123
124.88.67.35:81
112.18.51.167:8123
218.28.96.39:3128
49.94.160.198:3128
183.20
pull解析和json编码
百合不是茶
android pull解析 json
n.json文件:
[{name:java,lan:c++,age:17},{name:android,lan:java,age:8}]
pull.xml文件
<?xml version="1.0" encoding="utf-8"?>
<stu>
<name>java
[能源与矿产]石油与地球生态系统
comsci
能源
按照苏联的科学界的说法,石油并非是远古的生物残骸的演变产物,而是一种可以由某些特殊地质结构和物理条件生产出来的东西,也就是说,石油是可以自增长的....
那么我们做一个猜想: 石油好像是地球的体液,我们地球具有自动产生石油的某种机制,只要我们不过量开采石油,并保护好
类与对象浅谈
沐刃青蛟
java 基础
类,字面理解,便是同一种事物的总称,比如人类,是对世界上所有人的一个总称。而对象,便是类的具体化,实例化,是一个具体事物,比如张飞这个人,就是人类的一个对象。但要注意的是:张飞这个人是对象,而不是张飞,张飞只是他这个人的名字,是他的属性而已。而一个类中包含了属性和方法这两兄弟,他们分别用来描述对象的行为和性质(感觉应该是
新站开始被收录后,我们应该做什么?
IT独行者
PHP seo
新站开始被收录后,我们应该做什么?
百度终于开始收录自己的网站了,作为站长,你是不是觉得那一刻很有成就感呢,同时,你是不是又很茫然,不知道下一步该做什么了?至少我当初就是这样,在这里和大家一份分享一下新站收录后,我们要做哪些工作。
至于如何让百度快速收录自己的网站,可以参考我之前的帖子《新站让百
oracle 连接碰到的问题
文强chu
oracle
Unable to find a java Virtual Machine--安装64位版Oracle11gR2后无法启动SQLDeveloper的解决方案
作者:草根IT网 来源:未知 人气:813标签:
导读:安装64位版Oracle11gR2后发现启动SQLDeveloper时弹出配置java.exe的路径,找到Oracle自带java.exe后产生的路径“C:\app\用户名\prod
Swing中按ctrl键同时移动鼠标拖动组件(类中多借口共享同一数据)
小桔子
java 继承 swing 接口 监听
都知道java中类只能单继承,但可以实现多个接口,但我发现实现多个接口之后,多个接口却不能共享同一个数据,应用开发中想实现:当用户按着ctrl键时,可以用鼠标点击拖动组件,比如说文本框。
编写一个监听实现KeyListener,NouseListener,MouseMotionListener三个接口,重写方法。定义一个全局变量boolea
linux常用的命令
aichenglong
linux 常用命令
1 startx切换到图形化界面
2 man命令:查看帮助信息
man 需要查看的命令,man命令提供了大量的帮助信息,一般可以分成4个部分
name:对命令的简单说明
synopsis:命令的使用格式说明
description:命令的详细说明信息
options:命令的各项说明
3 date:显示时间
语法:date [OPTION]... [+FORMAT]
eclipse内存优化
AILIKES
java eclipse jvm jdk
一 基本说明 在JVM中,总体上分2块内存区,默认空余堆内存小于 40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。 1)堆内存(Heap memory):堆是运行时数据区域,所有类实例和数组的内存均从此处分配,是Java代码可及的内存,是留给开发人
关键字的使用探讨
百合不是茶
关键字
//关键字的使用探讨/*访问关键词private 只能在本类中访问public 只能在本工程中访问protected 只能在包中和子类中访问默认的 只能在包中访问*//*final 类 方法 变量 final 类 不能被继承 final 方法 不能被子类覆盖,但可以继承 final 变量 只能有一次赋值,赋值后不能改变 final 不能用来修饰构造方法*///this()
JS中定义对象的几种方式
bijian1013
js
1. 基于已有对象扩充其对象和方法(只适合于临时的生成一个对象):
<html>
<head>
<title>基于已有对象扩充其对象和方法(只适合于临时的生成一个对象)</title>
</head>
<script>
var obj = new Object();
表驱动法实例
bijian1013
java 表驱动法 TDD
获得月的天数是典型的直接访问驱动表方式的实例,下面我们来展示一下:
MonthDaysTest.java
package com.study.test;
import org.junit.Assert;
import org.junit.Test;
import com.study.MonthDays;
public class MonthDaysTest {
@T
LInux启停重启常用服务器的脚本
bit1129
linux
启动,停止和重启常用服务器的Bash脚本,对于每个服务器,需要根据实际的安装路径做相应的修改
#! /bin/bash
Servers=(Apache2, Nginx, Resin, Tomcat, Couchbase, SVN, ActiveMQ, Mongo);
Ops=(Start, Stop, Restart);
currentDir=$(pwd);
echo
【HBase六】REST操作HBase
bit1129
hbase
HBase提供了REST风格的服务方便查看HBase集群的信息,以及执行增删改查操作
1. 启动和停止HBase REST 服务 1.1 启动REST服务
前台启动(默认端口号8080)
[hadoop@hadoop bin]$ ./hbase rest start
后台启动
hbase-daemon.sh start rest
启动时指定
大话zabbix 3.0设计假设
ronin47
What’s new in Zabbix 2.0?
去年开始使用Zabbix的时候,是1.8.X的版本,今年Zabbix已经跨入了2.0的时代。看了2.0的release notes,和performance相关的有下面几个:
:: Performance improvements::Trigger related da
http错误码大全
byalias
http协议 javaweb
响应码由三位十进制数字组成,它们出现在由HTTP服务器发送的响应的第一行。
响应码分五种类型,由它们的第一位数字表示:
1)1xx:信息,请求收到,继续处理
2)2xx:成功,行为被成功地接受、理解和采纳
3)3xx:重定向,为了完成请求,必须进一步执行的动作
4)4xx:客户端错误,请求包含语法错误或者请求无法实现
5)5xx:服务器错误,服务器不能实现一种明显无效的请求
J2EE设计模式-Intercepting Filter
bylijinnan
java 设计模式 数据结构
Intercepting Filter类似于职责链模式
有两种实现
其中一种是Filter之间没有联系,全部Filter都存放在FilterChain中,由FilterChain来有序或无序地把把所有Filter调用一遍。没有用到链表这种数据结构。示例如下:
package com.ljn.filter.custom;
import java.util.ArrayList;
修改jboss端口
chicony
jboss
修改jboss端口
%JBOSS_HOME%\server\{服务实例名}\conf\bindingservice.beans\META-INF\bindings-jboss-beans.xml
中找到
<!-- The ports-default bindings are obtained by taking the base bindin
c++ 用类模版实现数组类
CrazyMizzz
C++
最近c++学到数组类,写了代码将他实现,基本具有vector类的功能
#include<iostream>
#include<string>
#include<cassert>
using namespace std;
template<class T>
class Array
{
public:
//构造函数
hadoop dfs.datanode.du.reserved 预留空间配置方法
daizj
hadoop 预留空间
对于datanode配置预留空间的方法 为:在hdfs-site.xml添加如下配置
<property>
<name>dfs.datanode.du.reserved</name>
<value>10737418240</value>
 
mysql远程访问的设置
dcj3sjt126com
mysql 防火墙
第一步: 激活网络设置 你需要编辑mysql配置文件my.cnf. 通常状况,my.cnf放置于在以下目录: /etc/mysql/my.cnf (Debian linux) /etc/my.cnf (Red Hat Linux/Fedora Linux) /var/db/mysql/my.cnf (FreeBSD) 然后用vi编辑my.cnf,修改内容从以下行: [mysqld] 你所需要: 1
ios 使用特定的popToViewController返回到相应的Controller
dcj3sjt126com
controller
1、取navigationCtroller中的Controllers
NSArray * ctrlArray = self.navigationController.viewControllers;
2、取出后,执行,
[self.navigationController popToViewController:[ctrlArray objectAtIndex:0] animated:YES
Linux正则表达式和通配符的区别
eksliang
正则表达式 通配符和正则表达式的区别 通配符
转载请出自出处:http://eksliang.iteye.com/blog/1976579
首先得明白二者是截然不同的
通配符只能用在shell命令中,用来处理字符串的的匹配。
判断一个命令是否为bash shell(linux 默认的shell)的内置命令
type -t commad
返回结果含义
file 表示为外部命令
alias 表示该
Ubuntu Mysql Install and CONF
gengzg
Install
http://www.navicat.com.cn/download/navicat-for-mysql
Step1: 下载Navicat ,网址:http://www.navicat.com/en/download/download.html
Step2:进入下载目录,解压压缩包:tar -zxvf navicat11_mysql_en.tar.gz
批处理,删除文件bat
huqiji
windows dos
@echo off
::演示:删除指定路径下指定天数之前(以文件名中包含的日期字符串为准)的文件。
::如果演示结果无误,把del前面的echo去掉,即可实现真正删除。
::本例假设文件名中包含的日期字符串(比如:bak-2009-12-25.log)
rem 指定待删除文件的存放路径
set SrcDir=C:/Test/BatHome
rem 指定天数
set DaysAgo=1
跨浏览器兼容的HTML5视频音频播放器
天梯梦
html5
HTML5的video和audio标签是用来在网页中加入视频和音频的标签,在支持html5的浏览器中不需要预先加载Adobe Flash浏览器插件就能轻松快速的播放视频和音频文件。而html5media.js可以在不支持html5的浏览器上使video和audio标签生效。 How to enable <video> and <audio> tags in
Bundle自定义数据传递
hm4123660
android Serializable 自定义数据传递 Bundle Parcelable
我们都知道Bundle可能过put****()方法添加各种基本类型的数据,Intent也可以通过putExtras(Bundle)将数据添加进去,然后通过startActivity()跳到下一下Activity的时候就把数据也传到下一个Activity了。如传递一个字符串到下一个Activity
把数据放到Intent
C#:异步编程和线程的使用(.NET 4.5 )
powertoolsteam
.net 线程 C# 异步编程
异步编程和线程处理是并发或并行编程非常重要的功能特征。为了实现异步编程,可使用线程也可以不用。将异步与线程同时讲,将有助于我们更好的理解它们的特征。
本文中涉及关键知识点
1. 异步编程
2. 线程的使用
3. 基于任务的异步模式
4. 并行编程
5. 总结
异步编程
什么是异步操作?异步操作是指某些操作能够独立运行,不依赖主流程或主其他处理流程。通常情况下,C#程序
spark 查看 job history 日志
Stark_Summer
日志 spark history job
SPARK_HOME/conf 下:
spark-defaults.conf 增加如下内容
spark.eventLog.enabled true spark.eventLog.dir hdfs://master:8020/var/log/spark spark.eventLog.compress true
spark-env.sh 增加如下内容
export SP
SSH框架搭建
wangxiukai2015eye
spring Hibernate struts
MyEclipse搭建SSH框架 Struts Spring Hibernate
1、new一个web project。
2、右键项目,为项目添加Struts支持。
选择Struts2 Core Libraries -<MyEclipes-Library>
点击Finish。src目录下多了struts