在正式爬取之前,先做一个试验,看一下爬取的数据对象的类型是如何转换为列表的:
写一个html文档:
x.html <html >< head >< title > This is a python demo pagetitle >head >
< body >
< p class ="title" >
< a > The demo python introduces several python courses.a >
< a href ="http://www.icourse163.org/course/BIT-133" class ="py1" id ="link1" > Basic Pythona >
p >
< p class ="course" > Python is a wonderful general-purpose programming language. You can learn Python from novice to professional by tracking the following courses:
< a href ="http://www.icourse163.org/course/BIT-268001" class ="py1" id ="link1" > Basic Pythona > and
< a href ="http://www.icourse163.org/course/BIT-1001870001" class ="py2" id ="link2" > Advanced Pythona >
p >
body >html >
# coding:utf-8
from bs4 import BeautifulSoup
import requests
import bs4
soup = BeautifulSoup(open('D:/x.html', encoding='utf-8'), " html.parser " )
print (soup.find(' body ' ,).children) # .children返回可迭代对象,不是列表,需要用for循环遍历其中的内容
for t in soup.find(' body ' ).children: 迭代标签的儿子节点
if isinstance(t, bs4.element.Tag): # 判断子节点是否为Tag对象(因为子节点会包含如换行符之类的节点)
print (' body的子标签的内容是: ' , t) # 查看t变量获得的对象内容,body的子标签为p标签,一组
表示一个对象
print (' t的类型是: ' , type(t)) # 查看t的类型
可以看到每个t对象的类型是bs4.element.Tag,也就是标签对象。
那么,如果要从每个t对象中获取a标签的内容,并把所有a标签都保存到一个列表中,该如何做?
可以使用:
list = t(' a ' ) # t('a')会生成一个bs4.element.ResultSet 类型的数据对象,实际上就是Tag列表
for t in soup.find(' body ' ).children:
if isinstance(t, bs4.element.Tag): # 判断子标签是否为Tag对象(因为子节点会包含如换行符之类的节点)
# print('body的子标签的内容是:', t) # 查看t变量获得的对象内容
# print('t的类型是:', type(t)) # 查看t的类型
list = t(' a ' ) # 循环获取每个t对象中的所有a标签,并保存到一个列表中
print (list)
print (type(list))
print (' 每个p标签的第一个a标签的内容: ' , list[0].string) # a标签保存到列表后,便可以利用列表方法解析出其中的具体每个a标签对象,并利用.string获取标签字符串
接下来就可以正式编写爬虫了:
分析网页源代码
可以看到需要的一些信息如大学排名、大学名称、地址、分数等分别在如图标注的地方,每个大学信息所在的标签结构如下:所有大学信息都在标签下,每个大学都在各自的标签,然后大学自身的排名、名称、地址等信息都分别由一个标签包裹。
思路如下:先找到下的所有标签内容,然后再从中找出所有标签内容(为什么不直接用find_all()找 ?因为不只有我们需要的大学信息用到了 标签, 之外也有用到标签来包裹内容的)。
我要把每个学校的“排名、名称、地址、分数”的值都取出来,并且把每组数据都各自装在一个列表中,然后再把每个列表依次加到一个大列表里
(1)直接处理数据
from bs4 import BeautifulSoup
import requests
import bs4
url = ' http://www.zuihaodaxue.com/shengyuanzhiliangpaiming2018.html '
r = requests.get(url)
r.encoding = r.apparent_encoding # 转换编码,不然中文会显示乱码,也可以r.encoding = 'utf-8'
html = r.text
soup = BeautifulSoup(html, ' html.parser ' ) # 获取爬取网页的BeautifulSoup对象
for tr in soup.find(' tbody ' ).children:
if isinstance(tr, bs4.element.Tag):
td = tr(' td ' ) print(td)
t = [td[0].string, td[1].string, td[2].string, td[3].string] # 把每个学校解析出的数据各自装到一个列表中 print (t)
打印td的结果:
打印t的结果如下,其实排名信息已经可以看出来了
然后依次把每个大学信息写入一个文本文档:
from bs4 import BeautifulSoup
import requests
import bs4
url = ' http://www.zuihaodaxue.com/shengyuanzhiliangpaiming2018.html '
r = requests.get(url)
r.encoding = r.apparent_encoding # 转换编码,不然中文会显示乱码,也可以r.encoding = 'utf-8'
html = r.text
soup = BeautifulSoup(html, ' html.parser ' ) # 获取爬取网页的BeautifulSoup对象
for tr in soup.find(' tbody ' ).children:
if isinstance(tr, bs4.element.Tag):
td = tr(' td ' )
t = [td[0].string, td[1].string, td[2].string, td[3].string] # 把每个学校解析出的数据各自装到一个列表中print(t)
with open(' D:/test.txt ' ,' a ' ) as data: # 以'a'模式打开文件,即可 不停的追加写入而不改变原内容 print (t, file= data)
(2)把代码封装,写到函数中
# coding:utf-8
import requests
import bs4
from bs4 import BeautifulSoup
def get_html(url): """定义获取网页源码函数"""
try :
r = requests.get(url, timeout=20)
r.encoding = r.apparent_encoding
return r.text
except :
return None
def get_data(html, list): """定义从网页源码获取数据并处理数据函数"""
soup = BeautifulSoup(html, ' html.parser ' )
for tr in soup.find(' tbody ' ).children:
if isinstance(tr, bs4.element.Tag):
td = tr(' td ' )
t = [td[0].string, td[1].string, td[2].string, td[3].string] # 把每个学校解析处的数据各自装到一个列表中
list.append(t) # 把每个学校信息列表都追加到一个大列表中,方便后面写入文件
# return list # 不能加return,造成的后果就是第一次循环时就把结果返回出去了,只取到了第一条数据
def write_data(ulist, num): # num参数,控制提取多少组数据写入文件 """定义把数据写入文件函数"""
for i in range(num):
u = ulist[i]
with open( ' D:/test.txt ' , ' a ' ) as data:
print (u, file=data)
if __name__ == ' __main__ ' :
list = [] # 我之前是把list=[]放到get_data()函数的for循环里面了,导致每次循环都会先清空列表,然后再追加数据,结果最后遍历完只剩最后一组数据。。。 url = ' http://www.zuihaodaxue.com/shengyuanzhiliangpaiming2018.html ' html = get_html(url) get_data(html, list) write_data(list, 20)
把结果输出到屏幕(老师给出的代码) # coding: utf-8
import requests
from bs4 import BeautifulSoup
import bs4
# def GetHTMLText(url):
# try:
# r = requests.get(url, timeout=30)
# r.raise_for_status()
# r.encoding = r.apparent_encoding
# return r.text
# except:
# return ""
#
#
# def fillUnivList(ulist, html):
# soup = BeautifulSoup(html, "html.parser")
# for tr in soup.find('tbody').children:
# if isinstance(tr, bs4.element.Tag):
# tds = tr('td')
# ulist.append([tds[0].string, tds[1].string, tds[2].string, tds[3].string])
#
#
#
# def printUnivList(ulist, num):
# print("{:^10}\t{:^6}\t{:^10}\t{:^10}".format('排名', '学校名称', '地区', '总分'))
# for i in range(num):
# u = ulist[i]
# print("{:^10}\t{:^6}\t{:^10}\t{:^10}".format(u[0], u[1], u[2], u[3]))
#
#
# def main():
# uinfo = []
# url = 'http://www.zuihaodaxue.com/shengyuanzhiliangpaiming2018.html'
# html = GetHTMLText(url)
# fillUnivList(uinfo, html)
# printUnivList(uinfo, 20)
# return uinfo
#
#
# if __name__ == '__main__':
# t = main()
转载于:https://www.cnblogs.com/hanmk/p/8724727.html
你可能感兴趣的:(python爬虫学习(二):定向爬虫例子-->使用BeautifulSoup爬取"软科中国最好大学排名-生源质量排名2018",并把结果写进txt文件...)
【Python】一文详细介绍 py格式 文件
高斯小哥
Python基础【高质量合集】 python 新手入门 学习
【Python】一文详细介绍py格式文件个人主页:高斯小哥高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程希望得到您的订阅和支持~创作高质量博文(平均质量分92+),分享更多关于深度学习、PyTorch、Python领域的优质内容!(希望得到您的关注~)文章目录一、py格式文件简介二、如何创建和编辑py格式文件三、如何运行py
迎接2019
唯有杜康1994
告别2018这一年是机遇与挑战,痛苦与喜悦,失去与收获的一年一月:收获了第一份爱情,开始真正想去了解一个人三月:对工作有了更深入的认识,靠自己的力量完成晋升五月:搬家,住进了自己理想的公寓,一间属于自己的屋子。满地的书六月:外调广州,升经理,有了自己的第一个团队。七月:怀着自我否定,第一次完成了部门任务八月:第一个员工流失,痛哭不已明白无不散之筵席九月:员工陆续离开,经济是一切的根本。十月:陪员工
亲子日记之祝姑姥姥生日快乐(282)
冰心雨露_d504
2021年7月18日,周日,晴周日上班的不上班,上学的不上学,全家都属于休息状态,洗衣做饭是上午的主要任务,中午休息一会儿,下午比较晚了出去给梦怡买了二年级上册的口算题卡,然后去参加姑姑的生日聚餐,本来姑姑应该是周一生日,因为周一都要上班,就提前到周日过了,说是过生日其实就是想借此机会一家人聚聚,毕竟平常都忙,没有时间聚在一起,梦怡还给姑姥姥做了生日贺卡,虽然长相一般,重在心意。生日快乐
100天30本书读书计划(2018-06-11)DAY 62
一个姜姜
【书名】当我谈跑步时,我谈些什么【作者】村上春树【读书页数】51--128/187【读书时间】2018年6月11日【精彩句子】01肌肉难长,易消。赘肉易长,难消。P5502肌肉也同有血有肉的动物一般无二,它也愿意过更舒服的日子,不继续给它负荷,它便会心安理得地将记忆出去。想再度输入的话,必须得从头开始,将同样的模式重复一遍。P7703不管怎样,反正得坚持跑步。每天跑步对我来说好比生命线,不能说忙就
植物小记
番茄秧子
小时候,我养过一院子的花。今年,我重新开始从头开始养一点儿植物。别人说那也只是别人说临到快过年,我逛了一趟花市,买了两棵水仙花。路过另外一个卖水仙的摊位,霸气的卖花小妹瞧了一眼我捧着的那两棵弱小,说了一句:“你那个水仙不行,都不会开花的。”以我的脾气,这当然不能相信啊。结果,带回家好几天没动静。某一天早晨起来,两棵水仙悄不吭声全开了,然后香了屋子好多天。水仙三月,我在花市扛了一盆栀子花,花店老板见
Android和IOS应用开发-Flutter应用让屏幕在 app 运行期间保持常亮的方法
江上清风山间明月
Flutter android ios flutter KeepAlive 屏幕常亮 wakelock 熄屏
文章目录Flutter应用让屏幕在app运行期间保持常亮的方法方法一:使用系统插件方法二:使用Widgets注意事项Flutter应用让屏幕在app运行期间保持常亮的方法在Flutter开发中,可以使用以下两种方法让屏幕在app运行期间保持常亮:方法一:使用系统插件Flutter社区中已经有很多相关插件可供使用,比如wakelock:https://pub.dev/packages/wakeloc
极狐GitLab 论坛 2.0 全新上线,可以在论坛上查找与 GitLab 相关的问题了~
极小狐
gitlab 极狐GitLab devops GitLab ci/cd devsecops SCM
安装出现依赖错误?版本升级搞不定?遇到422、500就懵逼了?不知道某个功能是免费or付费?……使用GitLab这种全球顶级的DevOps平台进行软件研发时,总会遇到一些困惑,想跟专业的技术人员快速交流以便获得答案,同时又想把这些问题沉淀下来以帮助他人?有这种赠人玫瑰,手有余香的解决方案吗?答案肯定有:论坛!!!论坛——一个各路大神聚集的地方,一个可以解惑答疑问道的地方。解惑:搜索与自己问题相同或
数据结构奇妙旅程之深入解析快速排序
山间漫步人生路
数据结构 排序算法 算法
快速排序(QuickSort)是一种高效的排序算法,它使用了分治法的策略来将一个数组排序。其基本思想是选择一个基准元素,通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比基准元素小,另一部分的所有数据都比基准元素大,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。工作原理选择基准:从待排序的序列中选一个元素作为基准(pivo
教育微创新的意蕴
知北老师
我是1992年参加工作的,一毕业就被分配到一所全县最偏僻落后的农村学校——付窝中学,12年后被调往一所已经连续十年全县倒数第一,也是很偏僻落后的农村学校——北宋镇第三中学。三年后到了北宋镇第一中学工作,这所学校教学质量也是连续几年落后了。2014年我到了北京市育英学校,这所学校是京城名校。2016年7月,我被育英学校派往原密云区第七中学工作,这是一所城乡接合部薄弱学校。学校现名为北京市育英学校密云
android 自定义曲线图,Android自定义View——贝赛尔曲线
weixin_39767513
android 自定义曲线图
个人博客:haichenyi.com。感谢关注本文针对有一定自定义View的童鞋,最好对贝赛尔曲线有辣么一丢丢了解,不了解也没关系。花5分钟看一下GcsSloop的安卓自定义View进阶-Path之贝塞尔曲线。本文的最终效果图:最终效果图.gif思路首先他是一个只有上半部分的正弦形状的水波纹,很规则。其次,他这个正弦图左右在移动。然后,就是它这个自定义View,上下也在移动,是慢慢增加的最后,优化
2022年河南省高等职业教育技能大赛云计算赛项竞赛赛卷(样卷)
忘川_ydy
云计算 云计算 openstack kubernetes docker python k8s ansible
#需要资源(软件包及镜像)或有问题的,可私博主!!!#需要资源(软件包及镜像)或有问题的,可私博主!!!#需要资源(软件包及镜像)或有问题的,可私博主!!!第一部分:私有云任务1私有云服务搭建(10分)使用提供的用户名密码,登录竞赛用的云计算平台,按要求自行使用镜像创建两台云主机,创建完云主机后确保网络正常通信,然后按要求配置服务器。根据提供安装脚本框架,补充脚本完成OpenStack平台的安装搭
浪潮 M5系列服务器IPMI无法监控存储RAID卡问题.
Songxwn
硬件服务器 服务器 运维
简介浪潮的M5代服务器,可能有WebBMC无法查看存储RAID/SAS卡状态的情况,可以通过以下方式修改。修改完成后重启BMC即可生效。ESXiIPMITools使用:https://songxwn.com/ESXi8_IPMI/(Linux也可以直接使用)Linux/ESXiIPMITool下载:https://songxwn.com/file/ipmitoolWindows下载:https:/
【OpenModelica】4命令行大全
Wumbuk
python 开发语言 modelica
命令行大全文章目录命令行大全一、SummaryofCommandsfortheInteractiveSessionHandler二、Runningthecompilerfromcommandline一、SummaryofCommandsfortheInteractiveSessionHandler以下是交互式会话处理器中当前可用命令的完整列表。•simulate(modelname):翻译一个名为
5月8日盘前提示:维持短期可以操作到下周二左右的判断,重个股轻指数
九命_猫妖
大盘:消息面。取消境外投资者额度限制,这个长线利好股市,短期影响不大,因为3000亿额度只用了1/3。额度本来就够用。走势看,昨天缩量横盘,走的还算中规中矩,近期一直弱势的次新股走势较强,前期强势股京威股份、光大嘉宝等跌停,由此判断市场还是存量博弈的市场,震荡是市场的主基调。维持短期可以操作到下周二左右的判断。下周后半段震荡回调的概率较高。思路:短期重个股轻指数行业和个股:物联网行业有利好,关注下
word字号和mathtype磅值关系及批量修改
小铁匠-Ma
office小技巧 经验分享
word字号和mathtype磅值关系及批量修改1.字号与磅值关系字号「八号」对应磅值5字号「七号」对应磅值5.5字号「小六」对应磅值6.5字号「六号」对应磅值7.5字号「小五」对应磅值9字号「五号」对应磅值10.5字号「小四」对应磅值12字号「四号」对应磅值14字号「小三」对应磅值15字号「三号」对应磅值16字号「小二」对应磅值18字号「二号」对应磅值22字号「小一」对应磅值24字号「一号」对应
Mac命令行查找SDK/JDK安装位置
iblade
Linux macos java 开发语言
要在命令行中查询AndroidSDKPlatformTools的安装位置,可以使用以下步骤:使用which命令:在命令行中执行以下命令:whichadb这将输出adb命令的安装路径,通常情况下,它会在AndroidSDK的platform-tools目录下。手动查找:如果whichadb没有输出,可以手动查找AndroidSDK的安装位置。通常情况下,AndroidSDK的默认安装路径是在用户的h
现在的婚姻是: 高彩礼和诸多要求让感情越来越淡漠
朦蒙哒
很多人搞不明白为什么现在的人对婚姻的质量要求那么高可就是维持不了多久时间,有不少人的婚姻是用礼金堆起来的,但恰恰是这些人最容易夫妻感情出问题导致离婚收场。现在的婚姻让年轻人失望,年轻人为什么对婚姻失望甚至没了渴望,无非就是这几个原因01彩礼高了感情淡了我们都知道,结婚要的高彩礼把很多年轻人给搞怕了,搞得很多年轻人都不敢结婚生子了,可以说彩礼高了让很多男女都失去了真感情,就算能在一起也只是男人需要老
生活中的鸡毛蒜皮-----心情琐碎记录
安家妈妈
陪孩子打预防针回来时的小发现今天天气特别的好,阳光灿烂,太阳晒得人暖融融的。可惜这么好的天气就不去郊游,而是去打预防针疫苗。孩子已经六岁了,这是最后的一次接种疫苗打针。昨天晚上接到电话,还有一点担心孩子会害怕,会不会紧张,来医院会不会怕到不敢进去。试想哪一个孩子听到打针会不紧张呢?结果过程居然顺利的不可思议,没有紧张也没有害怕,也没有反复的问。来到社区医院的大楼,还觉得非常有趣好玩的样子。为了让她
天猫超市优惠获取渠道,天猫超市内部优惠劵领取方法使用教程
氧惠全网优惠
天猫超市是一个不错的购物平台,满足用户所需,基本次日达,很方便的购物平台,那么有人问我,天猫超市优惠获取渠道在哪?怎么能够优惠的购买,今天分享给大家;1、天猫超市优惠券抢好券:天猫超市首页每天可以领取满199减30、满235减35、满299减50、满399减60、满166减30等优惠券,领劵方法复制下条口令打开淘宝进入领劵会场;隐藏神券、实时爆款、天天更新!戳>(CZ9185ZatcdhNADlJ
自律计划:从早睡早起开始
犀首公孫衍
今天天气十分不错,阳光明媚。下午趁着阳光充足,想去田野里走一走。两个多月了,几乎都是在家待着,大门不出二门不迈。上大学以来,可几乎不怎么去到田间地头看一看。3月正是油菜花开放的季节,满地的金黄色,草木也开始生出了绿色的芽儿。眼前的景儿,让人眼明心亮。一年之计在于春,春天是最美好的季节。这样一个特殊的春天,让我暂时脱离了学校,也算有了一些新的收获吧。开始有了一些好的改变,开始坚持每天读书,保持较好的
华为OD机试 - 单向链表中间节点(Java & JS & Python & C & C++)
华为OD题库
华为od 链表 java
须知哈喽,本题库完全免费,收费是为了防止被爬,大家订阅专栏后可以私信联系退款。感谢支持文章目录须知题目描述输出描述解析代码题目描述给定一个单链表L,请编写程序输出L中间结点保存的数据。如果有两个中间结点,则输出第二个中间结点保存的数据。例如:给定L为1→7→5,则输出应该为7;给定L为1→2→3→4,则输出应该为3;输入描述每个输入包含1个测试用例。每个测试用例:第一行给出链表首结点的地址、结点总
php 把一个数组分成有n个元素的二维数组的算法
风清扬-独孤九剑
php php 算法
一、第一种解法0){$columns_map[$position]++;//这个地方格外注意,$position与$columns比较$position=($position<$columns-1)?++$position:0;$array_length--;}foreach($columns_mapas$val){$newarray[]=array_splice($array,0,$val);}
花气袭人知昼暖
柒侠传
花气袭人知昼暖高一七班黄韵熹37号花袭人,原名花珍珠,位列金陵十二钗又副册中的第二位。“袭人”这一称呼源于“花气袭人知昼暖”这一诗句,是宝玉给起的。想起来便觉得暖融融的,一如花袭人温柔的笑容。但花袭人着实是令人又爱又怕的角色。第二十一回的回目将她赞作“贤袭人”,脂砚斋在一旁批道“当得起”。花袭人对宝玉的确是一片真心。她为劝宝玉收敛他那成日在大观园里与姐姐妹妹“厮混”的性子,假借家人赎回的机会,软语
你之所以胖,可能是因为小时候发生这件事!还不赶快甩锅
周围_5d19
通常,我们认为,“肥胖”主要是由于饮食不节制、不经常运动等等因素引起的。但最近,我国学者开展的一项针对6到18岁儿童青少年、随访长达十年的代谢综合征研究结果,在权威国际期刊发表。研究发现,儿童的肥胖和超重与睡眠密切相关,儿童、青少年时期睡眠不好,成人后也更容易患心血管疾病。那么,为什么儿童青少年睡眠不足会导致肥胖呢?今天就带大家一探究竟。儿童青少年肥胖的现状如何?近日,一项刊载在医学权威期刊《柳叶
python 推导式(派生、衍生)
sanduo112
人工智能 python windows 开发语言
python推导式一、推导式(派生、衍生)1.Python推导式是一种独特的数据处理方式,可以从一个数据序列构建另一个新的数据序列的结构体。2.列表(list)推导式3.字典(dict)推导式4.集合(set)推导式5.元组(tuple)推导式二、代码概述一、推导式(派生、衍生)1.Python推导式是一种独特的数据处理方式,可以从一个数据序列构建另一个新的数据序列的结构体。Python支持各种数
SpringMVC设置全局异常处理器
水岸齐天
java spring
文章目录背景分析使用@ControllerAdvice(@RestControllerAdvice)+@ExceptionHandler实现全局异常全局异常处理-多个处理器匹配顺序存在一个类中存在不同的类中对于过滤器和拦截器中的异常,有两种思路可以考虑背景在项目中我们有需求做一个全局异常处理,来规范所有出去的异常信息。参考:官方文档分析首先ControllerAdvice(RestControll
为什么说仪式和习惯非常重要?
章鱼老师zy
这是章鱼姐第【40】篇原创文章,日更计划第【37/100】天。阅读张萌萌姐【精力管理手册】第【6/7】章。一阅读摘要这一章萌姐讲到了习惯的重要性,为什么说养成一个习惯很重要?如何养成一个好习惯?如何建立自己的仪式感?二金句精力管理最重要的是产生什么效果。当你想做却没有动力去做一件事情时,你就应该把它养成习惯。习惯可以帮我们创造稳定框架。对于那些特别考验意志的事情,我们应该先行后思。三思考题,萌姐讲
【算法分析与设计】去除重复字母
五敷有你
算法分析与设计 java javascript 开发语言 算法 数据结构
个人主页:五敷有你系列专栏:算法分析与设计⛺️稳中求进,晒太阳题目给你一个字符串s,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证返回结果的字典序最小(要求不能打乱其他字符的相对位置)。示例示例1:输入:s="bcabc"输出:"abc"示例2:输入:s="cbacdcbc"输出:"acdb"思路贪心+单调栈实现【字符串删除一个字符使其字典序最小的贪心策略】:对于两个长度相同的字符串,
社交电商是什么意思通俗的说
氧惠好项目
社交电商是目前电商发展的一个非常热门的领域,它将传统的电商和社交媒体相结合,让用户可以在社交平台上完成购物、支付等操作。社交电商不同于传统电商,它更加注重用户的社交性和互动性,通过社交媒体的传播,吸引用户关注,让产品能够更加快速地传播。京东密令红包:最爱领红包828红包多多148今天给大家分享我长期在做的副业,也在这里赚到人生第3桶金!氧惠APP佣金高,资质靠谱,各大应用市场均可搜索使用。【氧惠】
以前开发MFC界面如何快速转成QT界面
广州视觉芯软件有限公司
mfc qt c++
将MFC界面快速转换为Qt界面可能需要进行一些手动工作,因为MFC和Qt是两个不同的界面框架,它们具有不同的设计和实现原理。但是,以下步骤可以帮助你快速进行转换:创建一个新的Qt项目:使用QtCreator创建一个新的Qt项目。分析MFC界面:仔细分析你的MFC界面,包括窗口、对话框、控件等的布局、样式和行为。重新设计界面:使用Qt的可视化设计器重新设计界面。在QtCreator的设计器中,你可以
[黑洞与暗粒子]没有光的世界
comsci
无论是相对论还是其它现代物理学,都显然有个缺陷,那就是必须有光才能够计算
但是,我相信,在我们的世界和宇宙平面中,肯定存在没有光的世界....
那么,在没有光的世界,光子和其它粒子的规律无法被应用和考察,那么以光速为核心的
&nbs
jQuery Lazy Load 图片延迟加载
aijuans
jquery
基于 jQuery 的图片延迟加载插件,在用户滚动页面到图片之后才进行加载。
对于有较多的图片的网页,使用图片延迟加载,能有效的提高页面加载速度。
版本:
jQuery v1.4.4+
jQuery Lazy Load v1.7.2
注意事项:
需要真正实现图片延迟加载,必须将真实图片地址写在 data-original 属性中。若 src
使用Jodd的优点
Kai_Ge
jodd
1. 简化和统一 controller ,抛弃 extends SimpleFormController ,统一使用 implements Controller 的方式。
2. 简化 JSP 页面的 bind, 不需要一个字段一个字段的绑定。
3. 对 bean 没有任何要求,可以使用任意的 bean 做为 formBean。
使用方法简介
jpa Query转hibernate Query
120153216
Hibernate
public List<Map> getMapList(String hql,
Map map) {
org.hibernate.Query jpaQuery = entityManager.createQuery(hql);
if (null != map) {
for (String parameter : map.keySet()) {
jp
Django_Python3添加MySQL/MariaDB支持
2002wmj
mariaDB
现状
首先,
[email protected] 中默认的引擎为 django.db.backends.mysql 。但是在Python3中如果这样写的话,会发现 django.db.backends.mysql 依赖 MySQLdb[5] ,而 MySQLdb 又不兼容 Python3 于是要找一种新的方式来继续使用MySQL。 MySQL官方的方案
首先据MySQL文档[3]说,自从MySQL
在SQLSERVER中查找消耗IO最多的SQL
357029540
SQL Server
返回做IO数目最多的50条语句以及它们的执行计划。
select top 50
(total_logical_reads/execution_count) as avg_logical_reads,
(total_logical_writes/execution_count) as avg_logical_writes,
(tot
spring UnChecked 异常 官方定义!
7454103
spring
如果你接触过spring的 事物管理!那么你必须明白 spring的 非捕获异常! 即 unchecked 异常! 因为 spring 默认这类异常事物自动回滚!!
public static boolean isCheckedException(Throwable ex)
{
return !(ex instanceof RuntimeExcep
mongoDB 入门指南、示例
adminjun
java mongodb 操作
一、准备工作
1、 下载mongoDB
下载地址:http://www.mongodb.org/downloads
选择合适你的版本
相关文档:http://www.mongodb.org/display/DOCS/Tutorial
2、 安装mongoDB
A、 不解压模式:
将下载下来的mongoDB-xxx.zip打开,找到bin目录,运行mongod.exe就可以启动服务,默
CUDA 5 Release Candidate Now Available
aijuans
CUDA
The CUDA 5 Release Candidate is now available at http://developer.nvidia.com/<wbr></wbr>cuda/cuda-pre-production. Now applicable to a broader set of algorithms, CUDA 5 has advanced fe
Essential Studio for WinRT网格控件测评
Axiba
JavaScript html5
Essential Studio for WinRT界面控件包含了商业平板应用程序开发中所需的所有控件,如市场上运行速度最快的grid 和chart、地图、RDL报表查看器、丰富的文本查看器及图表等等。同时,该控件还包含了一组独特的库,用于从WinRT应用程序中生成Excel、Word以及PDF格式的文件。此文将对其另外一个强大的控件——网格控件进行专门的测评详述。
网格控件功能
1、
java 获取windows系统安装的证书或证书链
bewithme
windows
有时需要获取windows系统安装的证书或证书链,比如说你要通过证书来创建java的密钥库 。
有关证书链的解释可以查看此处 。
public static void main(String[] args) {
SunMSCAPI providerMSCAPI = new SunMSCAPI();
S
NoSQL数据库之Redis数据库管理(set类型和zset类型)
bijian1013
redis 数据库 NoSQL
4.sets类型
Set是集合,它是string类型的无序集合。set是通过hash table实现的,添加、删除和查找的复杂度都是O(1)。对集合我们可以取并集、交集、差集。通过这些操作我们可以实现sns中的好友推荐和blog的tag功能。
sadd:向名称为key的set中添加元
异常捕获何时用Exception,何时用Throwable
bingyingao
用Exception的情况
try {
//可能发生空指针、数组溢出等异常
} catch (Exception e) {
 
【Kafka四】Kakfa伪分布式安装
bit1129
kafka
在http://bit1129.iteye.com/blog/2174791一文中,实现了单Kafka服务器的安装,在Kafka中,每个Kafka服务器称为一个broker。本文简单介绍下,在单机环境下Kafka的伪分布式安装和测试验证 1. 安装步骤
Kafka伪分布式安装的思路跟Zookeeper的伪分布式安装思路完全一样,不过比Zookeeper稍微简单些(不
Project Euler
bookjovi
haskell
Project Euler是个数学问题求解网站,网站设计的很有意思,有很多problem,在未提交正确答案前不能查看problem的overview,也不能查看关于problem的discussion thread,只能看到现在problem已经被多少人解决了,人数越多往往代表问题越容易。
看看problem 1吧:
Add all the natural num
Java-Collections Framework学习与总结-ArrayDeque
BrokenDreams
Collections
表、栈和队列是三种基本的数据结构,前面总结的ArrayList和LinkedList可以作为任意一种数据结构来使用,当然由于实现方式的不同,操作的效率也会不同。
这篇要看一下java.util.ArrayDeque。从命名上看
读《研磨设计模式》-代码笔记-装饰模式-Decorator
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.io.BufferedOutputStream;
import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.Fi
Maven学习(一)
chenyu19891124
Maven私服
学习一门技术和工具总得花费一段时间,5月底6月初自己学习了一些工具,maven+Hudson+nexus的搭建,对于maven以前只是听说,顺便再自己的电脑上搭建了一个maven环境,但是完全不了解maven这一强大的构建工具,还有ant也是一个构建工具,但ant就没有maven那么的简单方便,其实简单点说maven是一个运用命令行就能完成构建,测试,打包,发布一系列功
[原创]JWFD工作流引擎设计----节点匹配搜索算法(用于初步解决条件异步汇聚问题) 补充
comsci
算法 工作 PHP 搜索引擎 嵌入式
本文主要介绍在JWFD工作流引擎设计中遇到的一个实际问题的解决方案,请参考我的博文"带条件选择的并行汇聚路由问题"中图例A2描述的情况(http://comsci.iteye.com/blog/339756),我现在把我对图例A2的一个解决方案公布出来,请大家多指点
节点匹配搜索算法(用于解决标准对称流程图条件汇聚点运行控制参数的算法)
需要解决的问题:已知分支
Linux中用shell获取昨天、明天或多天前的日期
daizj
linux shell 上几年 昨天 获取上几个月
在Linux中可以通过date命令获取昨天、明天、上个月、下个月、上一年和下一年
# 获取昨天
date -d 'yesterday' # 或 date -d 'last day'
# 获取明天
date -d 'tomorrow' # 或 date -d 'next day'
# 获取上个月
date -d 'last month'
#
我所理解的云计算
dongwei_6688
云计算
在刚开始接触到一个概念时,人们往往都会去探寻这个概念的含义,以达到对其有一个感性的认知,在Wikipedia上关于“云计算”是这么定义的,它说:
Cloud computing is a phrase used to describe a variety of computing co
YII CMenu配置
dcj3sjt126com
yii
Adding id and class names to CMenu
We use the id and htmlOptions to accomplish this. Watch.
//in your view
$this->widget('zii.widgets.CMenu', array(
'id'=>'myMenu',
'items'=>$this-&g
设计模式之静态代理与动态代理
come_for_dream
设计模式
静态代理与动态代理
代理模式是java开发中用到的相对比较多的设计模式,其中的思想就是主业务和相关业务分离。所谓的代理设计就是指由一个代理主题来操作真实主题,真实主题执行具体的业务操作,而代理主题负责其他相关业务的处理。比如我们在进行删除操作的时候需要检验一下用户是否登陆,我们可以删除看成主业务,而把检验用户是否登陆看成其相关业务
【转】理解Javascript 系列
gcc2ge
JavaScript
理解Javascript_13_执行模型详解
摘要: 在《理解Javascript_12_执行模型浅析》一文中,我们初步的了解了执行上下文与作用域的概念,那么这一篇将深入分析执行上下文的构建过程,了解执行上下文、函数对象、作用域三者之间的关系。函数执行环境简单的代码:当调用say方法时,第一步是创建其执行环境,在创建执行环境的过程中,会按照定义的先后顺序完成一系列操作:1.首先会创建一个
Subsets II
hcx2013
set
Given a collection of integers that might contain duplicates, nums, return all possible subsets.
Note:
Elements in a subset must be in non-descending order.
The solution set must not conta
Spring4.1新特性——Spring缓存框架增强
jinnianshilongnian
spring4
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
shell嵌套expect执行命令
liyonghui160com
一直都想把expect的操作写到bash脚本里,这样就不用我再写两个脚本来执行了,搞了一下午终于有点小成就,给大家看看吧.
系统:centos 5.x
1.先安装expect
yum -y install expect
2.脚本内容:
cat auto_svn.sh
#!/bin/bash
Linux实用命令整理
pda158
linux
0. 基本命令 linux 基本命令整理
1. 压缩 解压 tar -zcvf a.tar.gz a #把a压缩成a.tar.gz tar -zxvf a.tar.gz #把a.tar.gz解压成a
2. vim小结 2.1 vim替换 :m,ns/word_1/word_2/gc  
独立开发人员通向成功的29个小贴士
shoothao
独立开发
概述:本文收集了关于独立开发人员通向成功需要注意的一些东西,对于具体的每个贴士的注解有兴趣的朋友可以查看下面标注的原文地址。
明白你从事独立开发的原因和目的。
保持坚持制定计划的好习惯。
万事开头难,第一份订单是关键。
培养多元化业务技能。
提供卓越的服务和品质。
谨小慎微。
营销是必备技能。
学会组织,有条理的工作才是最有效率的。
“独立
JAVA中堆栈和内存分配原理
uule
java
1、栈、堆
1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)3. 堆:存放所有new出来的对象。4. 静态域:存放静态成员(static定义的)5. 常量池:存放字符串常量和基本类型常量(public static f