这两个标签中,首先要做的就是拆解字符串,取出目标数据部分。
通过 requests
对网页源码进行获取,代码如下。
# 抓取函数
def main():
url = "http://www.netbian.com/mei/index.htm"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36"
}
res = requests.get(url=url, headers=headers, timeout=5)
res.encoding = "GBK"
print(res.text)
使用 requests 模块的 get 方法即可获取网页数据,其中的参数分别是请求地址,请求头,等待时间。
请求头字段中的 User-Agent,可以先使用我提供给你的内容,也可以通过开发者工具,进行获取。
在数据返回 Response 对象之后,通过 res.encoding="GBK" 设置了数据编码,该值可以从网页源码中获取到。
请求到数据源码,即开始解析数据,如果使用正则表达式,建议先对目标数据进行一些简单的裁剪工作。
裁剪字符串是 Python 中比较常规的操作了,直接编写代码即可实现。
用到的还是上文已经提及的两个字符串。
# 解析函数
def format(text):
# 处理字符串
div_html = ''
page_html = '
'
start = text.find(div_html) + len(div_html)
end = text.find(page_html)
origin_text = text[start:end]
最终得到的 origin_text
就是我们的目标文本。
通过 re 模块解析目标文本
上文返回的目标文本如下所示,本小节的目标就是获取到图片详情页地址。
使用的技术是 re 模块,当然需要配合正则表达式进行使用,对于正则表达式,可以跟随橡皮擦一点点的接触。
# 解析函数
def format(text):
# 处理字符串
div_html = ''
page_html = '
'
start = text.find(div_html) + len(div_html)
end = text.find(page_html)
origin_text = text[start:end]
pattern = re.compile('href="(.*?)"')
hrefs = pattern.findall(origin_text)
print(hrefs)
其中 re.compile 方法中传递的就是正则表达式,它是一种检索字符串特定内容的语法结构。
例如
. :表示除换行符(\n、\r)之外的任何单个字符; *:表示匹配前面的子表达式零次或多次; ?:当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的,非贪婪就是减少匹配; ():分组提取用。 有这些知识之后,在回到代码中去看实现。
假设存在一个字符串:href="/desk/23478.htm" ,使用 href="(.*?)" 可以将其中的 /desk/23478.htm
匹配出来,括号的作用也是为了后续方便提取。
最后输出内容如下图所示。
清洗爬取结果
其中存在部分链接地址不正确,需要从列表中进行去除,本步骤使用列表生成器即可完成任务。
pattern = re.compile('href="(.*?)"')
hrefs = pattern.findall(origin_text)
hrefs = [i for i in hrefs if i.find("desk")>0]
print(hrefs)
抓取内页数据
获取到列表页地址之后,就可以对图片内页数据进行获取了,这里用到的技术与前文逻辑一致。
# 解析函数
def format(text, headers):
# 处理字符串
div_html = ''
page_html = '
'
start = text.find(div_html) + len(div_html)
end = text.find(page_html)
origin_text = text[start:end]
pattern = re.compile('href="(.*?)"')
hrefs = pattern.findall(origin_text)
hrefs = [i for i in hrefs if i.find("desk") > 0]
for href in hrefs:
url = f"http://www.netbian.com{href}"
res = requests.get(url=url, headers=headers, timeout=5)
res.encoding = "GBK"
format_detail(res.text)
break
在第一次循环中增加了 break
,跳出循环,format_detail
函数用于格式化内页数据,依旧采用格式化字符串的形式进行。
由于每页只有一张图片是目标数据,故使用的是 re.search
进行检索,同时调用该对象的 group
方法对数据进行提取。
发现重复代码了,稍后进行优化。
def format_detail(text):
# 处理字符串
div_html = ''
page_html = '
'
start = text.find(div_html) + len(div_html)
end = text.find(page_html)
origin_text = text[start:end]
pattern = re.compile('src="(.*?)"')
image_src = pattern.search(origin_text).group(1)
# 保存图片
save_image(image_src)
保存图片部分,需要提前导入 time
模块,对图片进行重命名。
使用 requests.get
方法直接请求图片地址,调用响应对象的 content
属性,获取二进制流,然后使用 f.write
存储成图片。
# 存储函数
def save_image(image_src):
res = requests.get(url=image_src, timeout=5)
content = res.content
with open(f"{str(time.time())}.jpg", "wb") as f:
f.write(content)
得到的第一张图片,贴到博客中记录。
优化代码
将代码重复逻辑进行提取,封装成公用函数,最终整理之后的代码如下:
import requests
import re
import time
# 请求函数
def request_get(url, ret_type="text", timeout=5, encoding="GBK"):
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36"
}
res = requests.get(url=url, headers=headers, timeout=timeout)
res.encoding = encoding
if ret_type == "text":
return res.text
elif ret_type == "image":
return res.content
# 抓取函数
def main():
url = "http://www.netbian.com/mei/index.htm"
text = request_get(url)
format(text)
# 解析函数
def format(text):
origin_text = split_str(text, '', '
')
pattern = re.compile('href="(.*?)"')
hrefs = pattern.findall(origin_text)
hrefs = [i for i in hrefs if i.find("desk") > 0]
for href in hrefs:
url = f"http://www.netbian.com{href}"
print(f"正在下载:{url}")
text = request_get(url)
format_detail(text)
def split_str(text, s_html, e_html):
start = text.find(s_html) + len(e_html)
end = text.find(e_html)
origin_text = text[start:end]
return origin_text
def format_detail(text):
origin_text = split_str(text, '
', '
')
pattern = re.compile('src="(.*?)"')
image_src = pattern.search(origin_text).group(1)
# 保存图片
save_image(image_src)
# 存储函数
def save_image(image_src):
content = request_get(image_src, "image")
with open(f"{str(time.time())}.jpg", "wb") as f:
f.write(content)
print("图片保存成功")
if __name__ == '__main__':
main()
运行代码,得到下图所示运行效果。
目标 2000 张
20 张图片的爬取已经得到,下面目标 2000 张,初学阶段按照这种简单的方式抓取即可。
这一步需要改造的就是 main
函数:
# 抓取函数
def main():
urls = [f"http://www.netbian.com/mei/index_{i}.htm" for i in range(2, 201)]
url = "http://www.netbian.com/mei/index.htm"
urls.insert(0, url)
for url in urls:
print("抓取列表页地址为:", url)
text = request_get(url)
format(text)
你可能感兴趣的:(零基础python,爬虫,人工智能,python,爬虫,人工智能,新媒体运营)
conda:一个当下最流行的Python虚拟环境工具
Wang_AI
点击上方“AI派”,选择“设为星标”最新分享,第一时间送达!作者:LeonWang,现为中科院特别研究助理(博士后),在AI、数据科学和科学计算等方面相关的工程实践上积累了丰富的经验。编辑:王老湿前面的文章中,为大家介绍过Python下的虚拟环境和包管理。在实际中,更为流行的是用Conda来管理Python环境。今天这篇文章就为大家介绍这方面的相关内容。Conda环境Conda简介Conda是目前
轻松上手:Matplotlib的基本用法全知道
大数据方向陪跑私教
python
《轻松上手:Matplotlib的基本用法全知道》嗨,小伙伴们!之前咱们了解了好多厉害的Python包,今天咱们来好好讲讲Matplotlib这个在数据可视化方面超棒的包。**Matplotlib到底该怎么用呢?**这就像是探索一个新的游乐场,每个功能都是一样好玩的项目。一、安装Matplotlib在开始使用Matplotlib之前,得先把它安装好。如果你已经安装了Python的包管理工具pip,
Python 高手编程系列一千七百零八:在事件循环中使用 executors
杨琴1
python 开发语言
Executor.submit()方法返回的Future类实例在概念上非常接近异步编程中使用的协程。这就是为什么我们可以使用执行器在协同多任务和多进程或多线程之间进行混合。此解决方法的核心是事件循环类的BaseEventLoop.run_in_executor(executor,func,*args)方法。它会在进程池或线程池中调度执行由executor参数表示的func函数。这个方法最重要的是它
conda将python低版本环境升级到高版本
dkgee
conda python 开发语言
conda将python低版本环境3.7.16升级到高版本3.81.激活你的Conda环境2.升级Python版本3.验证升级4.处理依赖问题5.测试环境注意事项可以将Conda环境中的Python版本从3.7.16升级到3.8。以下是具体步骤:1.激活你的Conda环境首先,你需要激活你想要升级Python版本的环境。假设你的环境名为myenv,你可以使用以下命令激活它:condaactivat
python 爬取某乎某选全部内容
路笑笑
在发布了python爬取知乎盐选文章内容后,没想到居然这么快就要更新新的内容了。在下午思考第一篇python爬取知乎盐选文章内容的时候,其实就把自动爬取目录内的其他内容的方法想出来了,但是本来没想这么快更新的,哈哈。不过思来想去还是发出来吧,毕竟要不哪天就忘了。fromDecryptLoginimportloginfrombs4importBeautifulSoupimportreimportba
(含import)两行代码,将ppt的每一页幻灯片保存为图片。(如果你没装office,只装了WPS也可以,只不过更麻烦一些)
几道之旅
人工智能 智能体及数字员工 powerpoint wps
文章目录第一步:安装包第二步:写代码,运行第三步:如果你是Office,现在已经搞定了。但我是WPS,会报错:第四步:直接去包里改代码第五步:保存对包中代码的修改,重新运行咱最开头的代码第六步:成功了第一步:安装包pipinstallpython-office第二步:写代码,运行#安装库:pipinstallpython-officeimportoffice#单页转图片office.ppt.ppt
Python知识分享第十四天
闵少搞AI
python 开发语言
“”"1.面向对象相关概述概述面向对象是一种编程思想强调的是以对象为基础完成的各种操作它是基于面向过程的扩展Python中是同时支持面向对象和面向过程这两种编程思想的思想特点更符合人们的思考习惯把复杂的问题简单化把人们(程序员)从执行者变成了指挥者2.面向对象三大特征介绍封装继承多态封装概述封装就是隐藏对象的属性和实现细节仅对外提供公共的访问方式举例:插板电脑手机好处提高代码的安全性弊端代码量增加
pythontype函数使用_Python astype(np.float)函数使用方法解析
weixin_39870238
pythontype函数使用
Pythonastype(np.float)函数使用方法解析我的数据库如图结构我取了其中的nameagenr,做成array,只要所取数据存在str型,那么取出的数据,全部转化为str型,也就是array阵列的元素全是str,不管数据库定义的是不是int型。那么问题来了,取出的数据代入公式进行计算的时候,就会类型不符,这是就用到astype(np.float)代码如下importpymysqlim
conda install 和 pip install 的区别
不知江月待何人..
深度学习
condainstall和pipinstall是两个常用的包安装命令,但它们在很多方面存在差异。1.所属管理系统不同1.1condainstallcondainstall是Anaconda和Miniconda发行版自带的包管理工具conda的安装命令。conda是一个跨平台的开源包管理系统和环境管理系统,它不仅可以管理Python包,还能管理其他语言(如R、C++等)的包。conda更侧重于数据科
蓝桥杯备赛计划
laitywgx
蓝桥杯 职场和发展
1-2小时的蓝桥杯PythonB组冲刺日程表(持续1个月,聚焦高频考点):第一周:核心算法突破Day1(周一)学习重点:动态规划(01背包问题)学习资源:AcWing《蓝桥杯辅导课》第8讲(背包问题模板)代码模板速记:#一维01背包模板n,V=map(int,input().split())dp=[0]*(V+1)for_inrange(n):w,v=map(int,input().split()
探秘知乎数据抓取神器 —— zhihu-spider
丁慧湘Gwynne
探秘知乎数据抓取神器——zhihu-spider项目地址:https://gitcode.com/gh_mirrors/zh/zhihu-spider在知识的海洋中畅游,每一份数据都可能成为智慧的火花。今天,我们来一起探索一个专为知乎设计的数据爬虫工具——zhihu-spider,它是由计算机科学研究生MorganZhang精心打造的开源宝藏。项目介绍zhihu-spider,正如其名,是一个针对
Conda常用命令汇总(持续更新中)
X-future426
conda linux 运维
原文章:安装和使用Miniconda来管理Python环境-CSDN博客一、Miniconda的使用Miniconda没有GUI界面,只能通过conda命令对Python环境和软件包进行管理,所以这里主要介绍一下conda的常用命令。1.Conda相关(1)查询conda版本conda--version(2)更新conda版本condaupdateconda2.环境管理(1)查询已创建的虚拟环境c
大模型学习终极指南:从新手到专家的必经之路,全网最详尽解析,你敢挑战吗?
大模型入门教程
学习 人工智能 AI 大模型 大模型学习 大模型教程 AI大模型
随着人工智能技术的飞速发展,大模型(Large-ScaleModels)已经成为推动自然语言处理(NLP)、计算机视觉(CV)等领域进步的关键因素。本文将为您详细介绍从零开始学习大模型直至成为专家的全过程,包括所需掌握的知识点、学习资源以及实践建议等。无论您是初学者还是有一定基础的专业人士,都能从中获得有价值的指导。一、基础知识准备在开始学习大模型之前,需要先掌握一些基础知识,这些知识将为后续的学
Python 爬虫实战:从知乎盐选专栏,爬取优质内容付费数据
西攻城狮北
python 爬虫 开发语言 实战案例 知乎
目录一、前言二、准备篇2.1确定目标2.2工具与库2.3法律与道德声明三、实战篇3.1分析知乎盐选专栏页面3.2模拟登录3.3获取文章列表3.4爬取更多文章数据3.5数据存储四、分析篇4.1数据清洗4.2热门文章分析4.3收藏数分析4.4评论数分析五、总结与展望六、注意事项一、前言知乎盐选专栏作为知乎平台上的优质内容付费板块,汇聚了众多创作者的高质量文章。了解这些文章的付费数据,如点赞数、收藏数、
Python 常用函数全解析,轻松提升编码效率
jiajia651304
python 开发语言 windows
Python常用函数全解析,轻松提升编码效率Python常用函数全解析,轻松提升编码效率1.基础内置函数1.1`print()`与`input()`1.2`len()`、`type()`与`isinstance()`2.数学与数值处理函数2.1`abs()`、`round()`与`pow()`2.2`divmod()`与`max()/min()`3.序列与迭代相关函数3.1`range()`与`e
编程内容简述!
恶霸不委屈
开发语言 青少年编程 汇编 java python
编程是指通过计算机语言来开发软件、程序和应用的过程,通常通过编写一系列的指令,来让计算机完成特定的任务。编程可以涉及多个领域和技术,以下是一些主要的编程内容:1.编程语言编程语言是程序员与计算机进行沟通的桥梁,不同的编程语言适用于不同的任务。常见的编程语言有:Python:简单易学,适用于数据分析、人工智能、网页开发等。JavaScript:网页开发中不可或缺的语言,用于动态网页和前端开发。Jav
新手如何使用 Milvus
巴依老爷coder
数据库 milvus 向量数据库 数据库
一文带你入门Milvus:详细指南新手如何使用Milvus:详细指南一、Milvus简介主要特点应用领域二、安装Milvus安装DockerCompose基于DockerCompose安装Milvus服务端安装attu-可视化界面工具三、快速入门安装PythonSDK连接数据库方式1方式2(方式1的封装)数据库操作核心概念集合操作数据操作插入数据精准查询数据-get条件查询数据-query查询数据
nginx-部署Python网站项目
skyQAQLinux
python linux nginx 服务器
一、部署Python网站项目实验要求配置Nginx使其可以将动态访问转交给uWSGI安装Python工具及依赖1)拷贝软件到proxy主机[root@server1~]#scp-r/linux-soft/s2/wk/python/192.168.99.5:/root2)安装python依赖软件[root@proxy~]#yum-yinstallgccmakepython3python3-devel
Python 3.6.8 64位独立安装程序
霍娴果Myrtle
Python3.6.864位独立安装程序【下载地址】Python3.6.864位独立安装程序Python3.6.864位独立安装程序欢迎使用Python3.6.64位版安装包!本资源专门针对需要在64位操作系统上进行Python环境搭建的用户项目地址:https://gitcode.com/open-source-toolkit/98d19欢迎使用Python3.6.64位版安装包!本资源专门针对
如何用3个月零基础入门网络安全?_网络安全零基础怎么学习
白帽黑客啊一
学习 web安全 安全 python 网安入门
基于入门网络安全/黑客打造的:黑客&网络安全入门&进阶学习资源包前言写这篇教程的初衷是很多朋友都想了解如何入门/转行网络安全,实现自己的“黑客梦”。文章的宗旨是:1.指出一些自学的误区2.提供客观可行的学习表3.推荐我认为适合小白学习的资源.大佬绕道哈!基于入门网络安全/黑客打造的:黑客&网络安全入门&进阶学习资源包一、自学网络安全学习的误区和陷阱1.不要试图先成为一名程序员(以编程为基础的学习)
Python 3.6.8 安装包下载
何盼思Kit
Python3.6.8安装包下载【下载地址】Python3.6.8安装包下载Python3.6.8安装包下载本仓库提供适用于Windows操作系统的Python3.6.8安装包,支持x86和x64架构项目地址:https://gitcode.com/open-source-toolkit/d9647本仓库提供适用于Windows操作系统的Python3.6.8安装包,支持x86和x64架构。Pyt
大模型Agent 和 RAG 的关系
大数据追光猿
大模型 语言模型 人工智能 学习方法 transformer
Agent和RAG(Retrieval-AugmentedGeneration)是两种在自然语言处理(NLP)和人工智能领域中广泛使用的技术,它们在功能、目标和实现方式上既有区别又有联系。以下是它们的关系及其协同作用的详细分析。1.Agent和RAG的定义(1)Agent定义:Agent是一种智能体,能够感知环境并采取行动以完成特定任务。在NLP领域,Agent通常指一个基于大语言模型(LLM)的
国产模型能否挑战 GPT-4?一文拆解 DeepSeek-V3 架构与实战应用
AI筑梦师
人工智能学习框架 架构 深度学习 python agi 人工智能 tensorflow
✳️一、引言✅1.1DeepSeek-V3发布背景与定位随着大模型技术的快速演进,从GPT-3到GPT-4,全球在通用人工智能方向取得了长足进展。但与此同时,开源社区始终缺乏一个真正兼顾性能、效率、中文能力和实用性的高质量大模型。DeepSeek-V3的推出正是在这个背景下的一次关键突破。DeepSeek-V3是由中国团队DeepSeek开发的第三代大语言模型,它具备以下几个核心特性:开源可商用:
Python匿名函数Lambda,不止是省略函数名这么简单
橙色小博
python的学习之旅 python 开发语言
目录1.前言2.Lambda函数的基本用法3.关于Lambda函数的应用3.1与map函数结合3.2lambda与if-else语句3.3多参数lambda3.4嵌套lambda3.5字典与lambda(也是我本人最喜欢的用法)3.6lambda其他用法4.总结:Lambda的编程哲学1.前言在Python的广阔天地里,Lambda函数宛如一颗璀璨的明珠,以其简洁优雅的姿态,为代码增添了一份独特的
Agent、RAG、LangChain的概念及作用
北极冰雨
大模型 人工智能
Agent:概念:在人工智能中,Agent通常指的是能够执行任务或做出决策的实体,可以是简单的程序,也可以是复杂的系统,如自动化客服助手、推荐系统等,甚至可以是软件代理、机器人或虚拟助手等各种形式。作用:它能利用内置的大语言模型来做出规划,决定执行哪些步骤,以及每个步骤需要调用哪些工具(如RAG),之后调用相应的工具,最终完成任务。例如,在客服问答场景中,Agent可以根据用户的问题,规划出需要查
AtCoder备赛冲刺必刷题(C++) | 洛谷 AT_abc396_a Triple Four
热爱编程的通信人
c++ 算法 开发语言
本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。欢迎大家订阅我的专栏:算法题解:C++与Python实现!附上汇总贴:算法竞赛备考冲刺必刷题(C++)|汇总【题目来源】洛谷:AT_abc396_a[ABC396A]
python 捕获异常
weixin_30730151
python 数据库
异常:由于代码的逻辑或者语法错误导致的程序中断。在学习Python的过程当中,大家一定要区分清楚异常和布尔值False布尔值的False只是一个值,通常代表的是一个条件的不成立,常用于逻辑判断比如:1num=22print(num>3)3ifnum>3:4print("num>3")异常指的是由于代码的逻辑或者语法错误导致的程序中断比如:1num=222+"2"了解了上面的逻辑之后,我们来看看大家
DeepSeek多语言AI高效应用实践
智能计算研究中心
其他
内容概要在人工智能技术快速迭代的背景下,DeepSeek系列模型凭借混合专家架构(MoE)与670亿参数规模,在多语言处理、视觉语言理解及复杂任务生成领域实现了突破性进展。本文系统性拆解其技术架构设计逻辑,聚焦论文写作、代码生成、SEO关键词拓展三大核心场景,分析模型在高生成质量、低使用成本维度的差异化优势。技术维度DeepSeekProver传统单模态模型多语言支持97种语言动态切换单一语种优化
python爬虫Redis数据库
Æther_9
Python爬虫零基础入门 数据库 python 爬虫
Redis数据库Redis简介Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis与其他key-value缓存产品有以下三个特点:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。redis:半持
JavaScript反爬技术解析与应对
不做超级小白
web逆向知识碎片 web前端 javascript 开发语言 ecmascript
JavaScript反爬技术解析与应对前言在当今Web爬虫与数据抓取的生态环境中,网站运营方日益关注数据安全与隐私保护,因此逐步采用多种反爬技术来限制非授权访问。本文从JavaScript角度出发,深入剖析主流反爬策略的技术原理,并探讨相应的绕过方案,以期为研究者和开发者提供系统性的理解与实践指导。1.JavaScript反爬技术概述1.1右键禁用与开发者工具防护部分网站采用JavaScript拦
LeetCode[Math] - #66 Plus One
Cwind
java LeetCode 题解 Algorithm Math
原题链接:#66 Plus One
要求:
给定一个用数字数组表示的非负整数,如num1 = {1, 2, 3, 9}, num2 = {9, 9}等,给这个数加上1。
注意:
1. 数字的较高位存在数组的头上,即num1表示数字1239
2. 每一位(数组中的每个元素)的取值范围为0~9
难度:简单
分析:
题目比较简单,只须从数组
JQuery中$.ajax()方法参数详解
AILIKES
JavaScript jsonp jquery Ajax json
url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。
type: 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和 delete也可以使用,但仅部分浏览器支持。
timeout: 要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSetup()方法的全局
JConsole & JVisualVM远程监视Webphere服务器JVM
Kai_Ge
JVisualVM JConsole Webphere
JConsole是JDK里自带的一个工具,可以监测Java程序运行时所有对象的申请、释放等动作,将内存管理的所有信息进行统计、分析、可视化。我们可以根据这些信息判断程序是否有内存泄漏问题。
使用JConsole工具来分析WAS的JVM问题,需要进行相关的配置。
首先我们看WAS服务器端的配置.
1、登录was控制台https://10.4.119.18
自定义annotation
120153216
annotation
Java annotation 自定义注释@interface的用法 一、什么是注释
说起注释,得先提一提什么是元数据(metadata)。所谓元数据就是数据的数据。也就是说,元数据是描述数据的。就象数据表中的字段一样,每个字段描述了这个字段下的数据的含义。而J2SE5.0中提供的注释就是java源代码的元数据,也就是说注释是描述java源
CentOS 5/6.X 使用 EPEL YUM源
2002wmj
centos
CentOS 6.X 安装使用EPEL YUM源1. 查看操作系统版本[root@node1 ~]# uname -a Linux node1.test.com 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux [root@node1 ~]#
在SQLSERVER中查找缺失和无用的索引SQL
357029540
SQL Server
--缺失的索引
SELECT avg_total_user_cost * avg_user_impact * ( user_scans + user_seeks ) AS PossibleImprovement ,
last_user_seek ,
 
Spring3 MVC 笔记(二) —json+rest优化
7454103
Spring3 MVC
接上次的 spring mvc 注解的一些详细信息!
其实也是一些个人的学习笔记 呵呵!
替换“\”的时候报错Unexpected internal error near index 1 \ ^
adminjun
java “\替换”
发现还是有些东西没有刻子脑子里,,过段时间就没什么概念了,所以贴出来...以免再忘...
在拆分字符串时遇到通过 \ 来拆分,可是用所以想通过转义 \\ 来拆分的时候会报异常
public class Main {
/*
POJ 1035 Spell checker(哈希表)
aijuans
暴力求解--哈希表
/*
题意:输入字典,然后输入单词,判断字典中是否出现过该单词,或者是否进行删除、添加、替换操作,如果是,则输出对应的字典中的单词
要求按照输入时候的排名输出
题解:建立两个哈希表。一个存储字典和输入字典中单词的排名,一个进行最后输出的判重
*/
#include <iostream>
//#define
using namespace std;
const int HASH =
通过原型实现javascript Array的去重、最大值和最小值
ayaoxinchao
JavaScript array prototype
用原型函数(prototype)可以定义一些很方便的自定义函数,实现各种自定义功能。本次主要是实现了Array的去重、获取最大值和最小值。
实现代码如下:
<script type="text/javascript">
Array.prototype.unique = function() {
var a = {};
var le
UIWebView实现https双向认证请求
bewithme
UIWebView https Objective-C
什么是HTTPS双向认证我已在先前的博文 ASIHTTPRequest实现https双向认证请求
中有讲述,不理解的读者可以先复习一下。本文是用UIWebView来实现对需要客户端证书验证的服务请求,网上有些文章中有涉及到此内容,但都只言片语,没有讲完全,更没有完整的代码,让人困扰不已。但是此知
NoSQL数据库之Redis数据库管理(Redis高级应用之事务处理、持久化操作、pub_sub、虚拟内存)
bijian1013
redis 数据库 NoSQL
3.事务处理
Redis对事务的支持目前不比较简单。Redis只能保证一个client发起的事务中的命令可以连续的执行,而中间不会插入其他client的命令。当一个client在一个连接中发出multi命令时,这个连接会进入一个事务上下文,该连接后续的命令不会立即执行,而是先放到一个队列中,当执行exec命令时,redis会顺序的执行队列中
各数据库分页sql备忘
bingyingao
oracle sql 分页
ORACLE
下面这个效率很低
SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM IPAY_RCD_FS_RETURN order by id desc) A ) WHERE RN <20;
下面这个效率很高
SELECT A.*, ROWNUM RN FROM (SELECT * FROM IPAY_RCD_
【Scala七】Scala核心一:函数
bit1129
scala
1. 如果函数体只有一行代码,则可以不用写{},比如
def print(x: Int) = println(x)
一行上的多条语句用分号隔开,则只有第一句属于方法体,例如
def printWithValue(x: Int) : String= println(x); "ABC"
上面的代码报错,因为,printWithValue的方法
了解GHC的factorial编译过程
bookjovi
haskell
GHC相对其他主流语言的编译器或解释器还是比较复杂的,一部分原因是haskell本身的设计就不易于实现compiler,如lazy特性,static typed,类型推导等。
关于GHC的内部实现有篇文章说的挺好,这里,文中在RTS一节中详细说了haskell的concurrent实现,里面提到了green thread,如果熟悉Go语言的话就会发现,ghc的concurrent实现和Go有点类
Java-Collections Framework学习与总结-LinkedHashMap
BrokenDreams
LinkedHashMap
前面总结了java.util.HashMap,了解了其内部由散列表实现,每个桶内是一个单向链表。那有没有双向链表的实现呢?双向链表的实现会具备什么特性呢?来看一下HashMap的一个子类——java.util.LinkedHashMap。
读《研磨设计模式》-代码笔记-抽象工厂模式-Abstract Factory
bylijinnan
abstract
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
package design.pattern;
/*
* Abstract Factory Pattern
* 抽象工厂模式的目的是:
* 通过在抽象工厂里面定义一组产品接口,方便地切换“产品簇”
* 这些接口是相关或者相依赖的
压暗面部高光
cherishLC
PS
方法一、压暗高光&重新着色
当皮肤很油又使用闪光灯时,很容易在面部形成高光区域。
下面讲一下我今天处理高光区域的心得:
皮肤可以分为纹理和色彩两个属性。其中纹理主要由亮度通道(Lab模式的L通道)决定,色彩则由a、b通道确定。
处理思路为在保持高光区域纹理的情况下,对高光区域着色。具体步骤为:降低高光区域的整体的亮度,再进行着色。
如果想简化步骤,可以只进行着色(参看下面的步骤1
Java VisualVM监控远程JVM
crabdave
visualvm
Java VisualVM监控远程JVM
JDK1.6开始自带的VisualVM就是不错的监控工具.
这个工具就在JAVA_HOME\bin\目录下的jvisualvm.exe, 双击这个文件就能看到界面
通过JMX连接远程机器, 需要经过下面的配置:
1. 修改远程机器JDK配置文件 (我这里远程机器是linux).
 
Saiku去掉登录模块
daizj
saiku 登录 olap BI
1、修改applicationContext-saiku-webapp.xml
<security:intercept-url pattern="/rest/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<security:intercept-url pattern=&qu
浅析 Flex中的Focus
dsjt
html Flex Flash
关键字:focus、 setFocus、 IFocusManager、KeyboardEvent
焦点、设置焦点、获得焦点、键盘事件
一、无焦点的困扰——组件监听不到键盘事件
原因:只有获得焦点的组件(确切说是InteractiveObject)才能监听到键盘事件的目标阶段;键盘事件(flash.events.KeyboardEvent)参与冒泡阶段,所以焦点组件的父项(以及它爸
Yii全局函数使用
dcj3sjt126com
yii
由于YII致力于完美的整合第三方库,它并没有定义任何全局函数。yii中的每一个应用都需要全类别和对象范围。例如,Yii::app()->user;Yii::app()->params['name'];等等。我们可以自行设定全局函数,使得代码看起来更加简洁易用。(原文地址)
我们可以保存在globals.php在protected目录下。然后,在入口脚本index.php的,我们包括在
设计模式之单例模式二(解决无序写入的问题)
come_for_dream
单例模式 volatile 乱序执行 双重检验锁
在上篇文章中我们使用了双重检验锁的方式避免懒汉式单例模式下由于多线程造成的实例被多次创建的问题,但是因为由于JVM为了使得处理器内部的运算单元能充分利用,处理器可能会对输入代码进行乱序执行(Out Of Order Execute)优化,处理器会在计算之后将乱序执行的结果进行重组,保证该
程序员从初级到高级的蜕变
gcq511120594
框架 工作 PHP android html5
软件开发是一个奇怪的行业,市场远远供不应求。这是一个已经存在多年的问题,而且随着时间的流逝,愈演愈烈。
我们严重缺乏能够满足需求的人才。这个行业相当年轻。大多数软件项目是失败的。几乎所有的项目都会超出预算。我们解决问题的最佳指导方针可以归结为——“用一些通用方法去解决问题,当然这些方法常常不管用,于是,唯一能做的就是不断地尝试,逐个看看是否奏效”。
现在我们把淫浸代码时间超过3年的开发人员称为
Reverse Linked List
hcx2013
list
Reverse a singly linked list.
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
p
Spring4.1新特性——数据库集成测试
jinnianshilongnian
spring 4.1
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
C# Ajax上传图片同时生成微缩图(附Demo)
liyonghui160com
1.Ajax无刷新上传图片,详情请阅我的这篇文章。(jquery + c# ashx)
2.C#位图处理 System.Drawing。
3.最新demo支持IE7,IE8,Fir
Java list三种遍历方法性能比较
pda158
java
从c/c++语言转向java开发,学习java语言list遍历的三种方法,顺便测试各种遍历方法的性能,测试方法为在ArrayList中插入1千万条记录,然后遍历ArrayList,发现了一个奇怪的现象,测试代码例如以下:
package com.hisense.tiger.list;
import java.util.ArrayList;
import java.util.Iterator;
300个涵盖IT各方面的免费资源(上)——商业与市场篇
shoothao
seo 商业与市场 IT资源 免费资源
A.网站模板+logo+服务器主机+发票生成
HTML5 UP:响应式的HTML5和CSS3网站模板。
Bootswatch:免费的Bootstrap主题。
Templated:收集了845个免费的CSS和HTML5网站模板。
Wordpress.org|Wordpress.com:可免费创建你的新网站。
Strikingly:关注领域中免费无限的移动优
localStorage、sessionStorage
uule
localStorage
W3School 例子
HTML5 提供了两种在客户端存储数据的新方法:
localStorage - 没有时间限制的数据存储
sessionStorage - 针对一个 session 的数据存储
之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不