0.前言
0.1 抓取网页
本文将举例说明抓取网页数据的三种方式:正则表达式、BeautifulSoup、lxml。 获取网页内容所用代码详情请参照Python网络爬虫-你的第一个爬虫(我的简书博客)。利用该代码获取抓取整个网页。
import requests
def download (url, num_retries=2 , user_agent='wswp' , proxies=None) :
'''下载一个指定的URL并返回网页内容
参数:
url(str): URL
关键字参数:
user_agent(str):用户代理(默认值:wswp)
proxies(dict): 代理(字典): 键:‘http’'https'
值:字符串(‘http(s)://IP’)
num_retries(int):如果有5xx错误就重试(默认:2)
#5xx服务器错误,表示服务器无法完成明显有效的请求。
#https://zh.wikipedia.org/wiki/HTTP%E7%8A%B6%E6%80%81%E7%A0%81
'''
print('==========================================' )
print('Downloading:' , url)
headers = {'User-Agent' : user_agent}
try :
resp = requests.get(url, headers=headers, proxies=proxies)
html = resp.text
if resp.status_code >= 400 :
print('Download error:' , resp.text)
html = None
if num_retries and 500 <= resp.status_code < 600 :
return download(url, num_retries - 1 )
except requests.exceptions.RequestException as e:
print('Download error:' , e)
html = None
return html
0.2 爬取目标
爬取http://example.webscraping.com/places/default/view/Australia-14网页中所有显示内容。 分析网页结构可以看出,所有内容都在标签
中,以area为例可以看出,area的值在:
根据这个结构,我们用不同的方式来表达,就可以抓取到所有想要的数据了。
7,686,850 square kilometres
re.search(r'.*?(.*?) ').groups()[0 ]
soup.find('table' ).find('tr' , id='places_area__row' ).find('td' , class_="w2p_fw" ).text
tree.cssselect('table > tr#places_area__row > td.w2p_fw' )[0 ].text_content()
tree.xpath('//tr[@id="places_area__row"]/td[@class="w2p_fw"]' )[0 ].text_content()
Chrome 浏览器可以方便的复制出各种表达方式:
有了以上的download函数和不同的表达式,我们就可以用三种不同的方法来抓取数据了。
1.不同方式抓取数据
1.1 正则表达式爬取网页
正则表达式不管在python还是其他语言都有很好的应用,用简单的规定符号来表达不同的字符串组成形式,简洁又高效。学习正则表达式很有必要。https://docs.python.org/3/howto/regex.html。 python内置正则表达式,无需额外安装。
import re
targets = ('area' , 'population' , 'iso' , 'country' , 'capital' , 'continent' ,
'tld' , 'currency_code' , 'currency_name' , 'phone' , 'postal_code_format' ,
'postal_code_regex' , 'languages' , 'neighbours' )
def re_scraper (html) :
results = {}
for target in targets:
results[target] = re.search(r'.*?(.*?) '
% target, html).groups()[0 ]
return results
1.2BeautifulSoup抓取数据
BeautifulSoup用法可见python 网络爬虫 - BeautifulSoup 爬取网络数据 代码如下:
from bs4 import BeautifulSoup
targets = ('area' , 'population' , 'iso' , 'country' , 'capital' , 'continent' ,
'tld' , 'currency_code' , 'currency_name' , 'phone' , 'postal_code_format' ,
'postal_code_regex' , 'languages' , 'neighbours' )
def bs_scraper (html) :
soup = BeautifulSoup(html, 'html.parser' )
results = {}
for target in targets:
results[target] = soup.find('table' ).find('tr' , id='places_%s__row' % target) \
.find('td' , class_="w2p_fw" ).text
return results
1.3 lxml 抓取数据
from lxml.html import fromstring
def lxml_scraper (html) :
tree = fromstring(html)
results = {}
for target in targets:
results[target] = tree.cssselect('table > tr#places_%s__row > td.w2p_fw' % target)[0 ].text_content()
return results
def lxml_xpath_scraper (html) :
tree = fromstring(html)
results = {}
for target in targets:
results[target] = tree.xpath('//tr[@id="places_%s__row"]/td[@class="w2p_fw"]' % target)[0 ].text_content()
return results
1.4 运行结果
scrapers = [('re' , re_scraper), ('bs' ,bs_scraper), ('lxml' , lxml_scraper), ('lxml_xpath' ,lxml_xpath_scraper)]
html = download('http://example.webscraping.com/places/default/view/Australia-14' )
for name, scraper in scrapers:
print(name,"=================================================================" )
result = scraper(html)
print(result)
==========================================
Downloading: http://example.webscraping.com/places/default/view/Australia-14
re =================================================================
{'area' : '7,686,850 square kilometres' , 'population' : '21,515,754' , 'iso' : 'AU' , 'country' : 'Australia' , 'capital' : 'Canberra' , 'continent' : 'OC ' , 'tld' : '.au' , 'currency_code' : 'AUD' , 'currency_name' : 'Dollar' , 'phone' : '61' , 'postal_code_format' : '####' , 'postal_code_regex' : '^(\\d{4})$' , 'languages' : 'en-AU' , 'neighbours' : '' }
bs =================================================================
{'area' : '7,686,850 square kilometres' , 'population' : '21,515,754' , 'iso' : 'AU' , 'country' : 'Australia' , 'capital' : 'Canberra' , 'continent' : 'OC' , 'tld' : '.au' , 'currency_code' : 'AUD' , 'currency_name' : 'Dollar' , 'phone' : '61' , 'postal_code_format' : '####' , 'postal_code_regex' : '^(\\d{4})$' , 'languages' : 'en-AU' , 'neighbours' : ' ' }
lxml =================================================================
{'area' : '7,686,850 square kilometres' , 'population' : '21,515,754' , 'iso' : 'AU' , 'country' : 'Australia' , 'capital' : 'Canberra' , 'continent' : 'OC' , 'tld' : '.au' , 'currency_code' : 'AUD' , 'currency_name' : 'Dollar' , 'phone' : '61' , 'postal_code_format' : '####' , 'postal_code_regex' : '^(\\d{4})$' , 'languages' : 'en-AU' , 'neighbours' : ' ' }
lxml_xpath =================================================================
{'area' : '7,686,850 square kilometres' , 'population' : '21,515,754' , 'iso' : 'AU' , 'country' : 'Australia' , 'capital' : 'Canberra' , 'continent' : 'OC' , 'tld' : '.au' , 'currency_code' : 'AUD' , 'currency_name' : 'Dollar' , 'phone' : '61' , 'postal_code_format' : '####' , 'postal_code_regex' : '^(\\d{4})$' , 'languages' : 'en-AU' , 'neighbours' : ' ' }
从结果可以看出正则表达式在某些地方返回多余元素,而不是纯粹的文本。这是因为这些地方的网页结构和别的地方不同,因此正则表达式不能完全覆盖一样的内容,如有的地方包含链接和图片。而BeautifulSoup和lxml有专门的提取文本函数,因此不会有类似错误。
既然有三种不同的抓取方式,那有什么区别?应用场合如何?该如何选择呢? ···to be continued···
你可能感兴趣的:(学习笔记)
Adaptive AUTOSAR 学习笔记 3 - AP 背景、技术及特征
aFakeProgramer
AP AUTOSAR # AP AUTOSAR 新标准解读系列 学习 笔记
本系列学习笔记基于AUTOSARAdaptivePlatform官方文档R20-11版本。本文从AUTOSAR_EXP_PlatformDesign.pdf开始,一边学习,一边顺带着翻译一下。尽力而为,不保证精确。你若愿意,也可以当作AUTOSARAdaptivePlatform(AP)中文版来阅读1介绍1.1内容本规范(AUTOSAR_EXP_PlatformDesign.pdf)描述AP设计。
学习笔记一:oracle体系结构组件
coxddta29006
数据库 操作系统 java
首先声明一下,我的学习笔记参考书主要是官方教材,oracle9idatabaseadministrationfundamentsed2.0我觉得学习是一个循序渐进的过程,从面到点,从宏观到微观,逐步渗透,各个击破,对于oracle,怎么样从宏观上来理解呢?先来看一个图,这个图取自于上面提到的教材,这个图对于从整体上理解ORACLE的体系结构组件,非常关键.下面来解释下这个图.对于一个数据库系统来说
3章mysql表连接查询_mysql学习笔记(六)--- 多表查询之外键、表连接、子查询、索引...
kindle电子书单
3章mysql表连接查询
本章主要内容:一、外键二、表连接三、子查询四、索引一、外键:1、什么是外键2、外键语法3、外键的条件4、添加外键5、删除外键1、什么是外键:主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性外键:是另一表的主键,外键可以有重复的,可以是空值,用来和其他表建立联系用的。所以说,如果谈到了外键,一定是至少涉及到两张表。例如下面这两张表:上面有两张表:部门表(dept)、员工表(em
MySQL学习笔记(8)--连接查询
绿皮豚二号
MySQL mysql 数据库
·概念将多张表连在一起查询(会导致记录数行和字段数列发生改变)意义:在关系型数据库设计过程中,实体与实体之间是存在很多联系的。在关系型数据库表的设计过程中,遵循着关系来设计:一对一,一对多,多对多。通常在实际操作中,需要利用这层关系来保证数据的完整性。·交叉连接将两张表的数据与另外一张表彼此交叉(笛卡尔积)表1crossjoin表2--实例select*frommy_studentcrossjoi
Mysql之多表查询(几种连接方式)
知识进脑的肖老千啊
sql mysql 数据库 sql
Mysql之多表查询(随手记录学习笔记)我们先建立两个表,并向表中插入数据(方便我们等会实验):#建表createtabledepartment(idint,namevarchar(20));createtableemployee(idintprimarykeyauto_increment,namevarchar(20),sexenum('male','female')notnulldefault
软件测试学习笔记丨Pytest的使用
霍格沃兹测试开发学社测试人社区
学习 笔记 pytest 软件测试 测试开发
本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/221581.简介pytest是一个成熟的全功能python测试框架测试用例的skip和xfail,自动失败重试等处理能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试,接口自动化测试pytest有很多第三方插件,并且可以自定义扩展,如pytest-allure(完
机器学习笔记 - 机器学习/深度学习实战案例合集
坐望云起
深度学习从入门到精通 机器学习 深度学习 人工智能 案例应用 神经网络
一、简述如何学习机器学习/深度学习,理论和实践都很重要,理论上的内容需要看课程、读教材。但是实践需要自己动手,实践之后自然会对理论有更深入的理解。怎么实践?借用欧阳修《卖油翁》的话”无他,但手熟尔“。就是多看多写多跑。下面创建这个github的目的是为了存放一些图像处理/计算机视觉/机器学习/深度学习的示例代码集合,不定期会添加新的示例,可供参考。GitHub-bashendixie/ml_too
Vue学习笔记 二
涔溪
vue vue.js 学习 笔记
4、Vue基础扩展4.1插槽组件的最大特性就是复用性,而用好插槽能大大提高组件的可复用能力在Vue中插槽是很重要的存在,通过插槽,我们可以把父组件中指定的DOM作用到子组件的任意位置,后面我们坐项目用到的组件库比如element-ui,vant-ui都频繁用到的插槽,Vue的插槽主要有匿名插槽,具名插槽,作用域插槽三种,下面我们分别来认识一下他们。4.1.1匿名插槽★★★★故名思义就是没有名字的插
2022年10月15日 学习笔记——电能量市场和辅助服务市场联合出清(仅为基础知识概念)
XiaoGuYing
电气自动化 最优化方法 学习
电能量市场和辅助服务市场联合出清(仅为基础知识概念)电能量市场辅助服务市场英国电力市场改革美国电力市场改革北欧电力市场辅助服务的分类辅助服务交易类型电能量市场和辅助服务市场联合出清电能量市场在电力批发市场中,主要的电力交易产品是电能量。按照时间维度,电力交易类型可分为中长期交易、短期交易和及时交易[见《中共中央国务院关于进一步深化电力一直改革的若干意见》(中发[2015]9号文)(简称9号文)],
html与css学习笔记(2)
陈王卜
学习 笔记
一、CSS引入方式具体有3种引入方式,语法如下表格所示:引入方式语法内联样式在HTML标签中使用style属性,例如:这是一个红色的div内部样式表在HTML文件的标签内使用标签,例如:div{color:red;}外部样式表使用标签在HTML文件的标签内引入外部CSS文件,例如:对于上述3种引入方式,企业开发的使用情况如下:1.内联样式会出现大量的代码冗余,不方便后期的维护,所以不常用。2.内部
Redis学习笔记之Redis数据结构与内部编码、单线程架构
dog~south~south
学习笔记 redis 缓存
一、Redis数据结构与内部编码1、Redis数据结构有哪些?StringHashlistsetzset等等2、数据结构与内部编码的关系数据结构是用户能接触的接口内部编码是数据结构的内部实现每种数据结构都有两种及以上的内部编码多种内部编码实现可以在不同的场景下发挥各自的优势二、Redis的单线程架构redis是单线程来处理命令的一条命令从客户端到服务端不会立刻被执行,所有命令都会进入一个队列中,然
小土堆学习笔记10(利用GPU训练于模型验证)
干啥都是小小白
pytorch学习——小土堆 学习 笔记 深度学习
1.利用GPU训练GPU可优化操作如下操作方法1方法2数据获取判断是否可以使用GPU,如果可以直接model.cuda()先设定device,用的时候直接model.to(“device”)损失函数1.1利用以前实战模型训练(经过完整测试最高到70%左右的正确率)实战模型如下:小土堆学习笔记5(sequential与小实战)-CSDN博客具体代码如下:classmymodel(Module):de
AIGC视频生成模型:Meta的Emu Video模型
好评笔记
# Meta AIGC-视频 AIGC 机器学习 人工智能 transformer 论文阅读 深度学习 面试
大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍Meta的视频生成模型EmuVideo,作为Meta发布的第二款视频生成模型,在视频生成领域发挥关键作用。优质专栏回顾:机器学习笔记深度学习笔记多模态论文笔记AIGC—图像文章目录论文摘要引言相关工作文本到图像(T2I)扩散模型视频生成/预测文本到视频(T2V)生成分解生成方法预备知识EmuVideo生成步骤图
kafka学习笔记4-TLS加密 —— 筑梦之路
筑梦之路
Java技术 linux系统运维 学习 笔记
1.准备证书文件mkdir/opt/kafka/pkicd!$#生成CA证书opensslreq-x509-nodes-days3650-newkeyrsa:4096-keyoutca.key-outca.crt-subj"/CN=Kafka-CA"#生成私钥opensslgenrsa-outkafka.key4096#生成证书签名请求(CSR)opensslreq-new-keykafka.ke
kafka学习笔记6 ACL权限 —— 筑梦之路
筑梦之路
Java技术 linux系统运维 kafka 学习 笔记
在Kafka中,ACL(AccessControlList)是用来控制谁可以访问Kafka资源(如主题、消费者组等)的权限机制。ACL配置基于Kafka的kafka-acls.sh工具,能够管理对资源的读取、写入等操作权限。ACL介绍Kafka的ACL是基于以下几个方面的:资源类型(ResourceType):Kafka支持多种资源类型,包括主题(Topic)、消费者组(ConsumerGroup
自强学堂django学习笔记
人菜就要多透虚
视图与网址进阶这里学到了正则表达式的解释url(r'^add/(\d+)/(\d+)/$',calc_views.add2,name='add2'),用括号括起来的意思是保存为一个子组,每一个子组将作为一个参数,被views.py中的对应视图函数接收。模板模板是可以继承的:以一个HTML文件为基础,拓展出其他的HTML模板模板进阶模板HTML上接收到一个参数是这么表示的{{string}}用两层花
Django学习笔记
Atmanlee
python SQL Django
Django跟着“自强学堂”学习django。。。。。感谢学堂!!!https://code.ziqiangxuetang.com/django/django-tutorial.html(自强学堂)Django使用python开发的免费开源的web框架,用于快速搭建网站。特点之一就是拥有强大的数据库操作接口(QuerySetAPI),如果需要也可以执行原生SQLDjango概览urls.py网址入
Golang学习笔记_26——通道
LuckyLay
Golang学习笔记 golang 学习 笔记 通道 channel
Golang学习笔记_23——error补充Golang学习笔记_24——泛型Golang学习笔记_25——协程Golang学习笔记_25——协程文章目录通道1.创建通道2.发送和接收数据3.带缓冲的通道4.Demo源码通道在Go中,协程是通过go关键字来创建的。当你使用go关键字调用一个函数时,该函数会在一个新的协程中执行。协程的调度由Go运行时(runtime)管理,开发者不需要关心具体的调度
Spring学习笔记_41——@RequestBody
LuckyLay
Spring学习笔记 spring 消息转换器 RequestBody SpringMVC SpringBoot
Spring学习笔记_38——@RequestParamSpring学习笔记_39——@PathVariableSpring学习笔记_40——@RequestHeader@RequestBody1.介绍@RequestBody是Spring框架中用于处理HTTP请求的一个非常关键的注解。它主要用于将客户端发送的HTTP请求体中的JSON、XML或其他格式的数据转换到Java方法参数上,这个转换过程
Golang学习笔记_28——工厂方法模式
LuckyLay
Golang学习笔记 golang 学习 笔记 设计模式 工厂方法模式
Golang学习笔记_25——协程Golang学习笔记_26——通道Golang学习笔记_27——单例模式文章目录工厂方法模式1.介绍2.优点3.类图4.实现源码工厂方法模式1.介绍工厂方法模式(FactoryMethod)是一种创建型设计模式,它提供了一种创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法模式让类的实例化推迟到子类中进行2.优点解耦:将对象的创建与使用分离,客户端不需要知
ReactNative进阶(三十五):应用脚手架 Yo 构建 RN 页面_reactnative 脚手架
2401_84438654
程序员 react native arcgis react.js
算法冒泡排序选择排序快速排序二叉树查找:最大值、最小值、固定值二叉树遍历二叉树的最大深度给予链表中的任一节点,把它删除掉链表倒叙如何判断一个单链表有环由于篇幅限制小编,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!如果你觉得对你有帮助,可以戳这里获取:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】sudo
【贪心算法】洛谷P4995 - 跳跳
仟濹
算法学习笔记 贪心算法 算法
2025-01-21-第44篇【洛谷】贪心算法题单-【贪心算法】-【学习笔记】作者(Author):郑龙浩/仟濹(CSND账号名)目录文章目录目录洛谷P4995跳跳!题目描述输入格式输出格式样例#1样例输入#1样例输出#1样例#2样例输入#2样例输出#2提示样例解释数据范围思路代码洛谷P4995跳跳!题目描述你是一只小跳蛙,你特别擅长在各种地方跳来跳去。这一天,你和朋友小F一起出去玩耍的时候,遇到
mvc学习笔记
JDS_DIJ
笔记 mvc
mvc设计框架的形成最早是servlet==>缺点:生成html页面太麻烦,所以引入了jsp,jsp本质就是servletjsp==>缺点:阅读起来困难,难维护,于是引入javabean,用来专门和数据打交道;形成jsp的设计框架model1jsp+javabean==>缺点:jsp即要接受请求,又要展示数据,所以又加入servlet;专门用来接受请求;形成jsp的设计框架model2jsp+ja
MVC 架构学习笔记
disgare
架构 mvc 架构 学习
MVC架构学习笔记Service与DAO层方法命名规约业务错误是用返回值来处理还是抛异常来处理Service与DAO层方法命名规约CRUD是指在做计算处理时的增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写。主要被用在描述软件系统中DataBase或者持久层的基本操作功能。对应这里的crud方法的命名,每个人有不同的实践。以下是阿里
Go语言学习笔记—golang流程控制
PPPsych
Go语言基础学习笔记 golang 学习
视频来源:B站《golang入门到项目实战[2022最新Go语言教程,没有废话,纯干货!]》文章为自己整理的学习笔记,侵权即删,谢谢支持!文章目录一Go语言中的流程控制简介二Go语言中的if语句2.1语法2.2实例演示2.3注意事项三Go语言中的ifelse语句3.1语法3.2实例演示3.3注意事项(同if语句)四Go语言中的ifelseif语句4.1语法4.2实例演示五Go语言中的嵌套if语句5
小白入门MATLAB学习笔记
小mushroom
matlab 学习 笔记
绘图:使用MATLAB绘制三叶玫瑰线公式:玫瑰线的极坐标方程为:ρ=a*sin(nθ),ρ=a*cos(nθ)用直角坐标方程表示为:x=a*sin(nθ)*cos(θ),y=a*sin(nθ)*sin(θ)其中n为玫瑰线的叶数,我们绘制三叶玫瑰线,因而公式中取n=3代码:t=-2*pi:0.01:2*pi;x=sin(3*t).*cos(t);y=2*sin(3*t).*sin(t);z=3*si
深度学习学习笔记(第30周)
qq_51339898
深度学习 人工智能
一、摘要本周报的目的在于汇报第30周的学习成果,本周主要聚焦于基于深度学习的图像分割领域的常用模型U-net。 U-net是最常用、最简单的一种分割模型,在2015年被提出。UNet网络是一种用于图像分割的卷积神经网络,其特点是采用了U型网络结构,因此称为UNet。UNet算法的关键创新是在解码器中引入了跳跃连接(SkipConnections),即将编码器中的特征图与解码器中对应的特征图进行连接
kafka学习笔记2 —— 筑梦之路
筑梦之路
Java技术 linux系统运维 kafka 学习 笔记
KRaft模式Kafka的KRaft模式是一种新的元数据管理方式,旨在去除对ZooKeeper的依赖,使Kafka成为一个完全自包含的系统。在Kafka的传统模式下,元数据管理依赖于ZooKeeper,这增加了部署和运维的复杂性。为了解决这个问题,Kafka社区引入了KRaft模式。在KRaft模式下,所有的元数据,包括主题、分区信息、副本位置等,都被存储在Kafka集群内部的特殊日志中。这个日志
学习笔记:顺序表(动态创建)vscode实现
San~ui
学习 笔记 考研 vscode
动态分配的顺序表的优缺点:优点:可以动态增加主题缺点:动态增加长度中的迁徙工作时间增加实现方式(删除操作与静态一样)#include#include#include#defineInitSize1typedefstruct{int*data;//指向分配空间的起始地址intMaxSize;//最大容量intlength;//当前长度}SqList;//初始化voidInitList(SqList*
kafka学习笔记5 PLAIN认证——筑梦之路
筑梦之路
linux系统运维 Java技术 kafka 学习 笔记
在Kafka中,SASL(SimpleAuthenticationandSecurityLayer)机制包括三种常见的身份验证方式:SASL/PLAIN认证:含义是简单身份验证和授权层应用程序接口,PLAIN认证是其中一种最简单的用户名、密码认证方式,生产环境使用维护简单易用。可用于Kafka和其他应用程序之间的认证。SASL/SCRAM认证:SCRAM-SHA-256、SCRAM-SHA-512
sql统计相同项个数并按名次显示
朱辉辉33
java oracle
现在有如下这样一个表:
A表
ID Name time
------------------------------
0001 aaa 2006-11-18
0002 ccc 2006-11-18
0003 eee 2006-11-18
0004 aaa 2006-11-18
0005 eee 2006-11-18
0004 aaa 2006-11-18
0002 ccc 20
Android+Jquery Mobile学习系列-目录
白糖_
JQuery Mobile
最近在研究学习基于Android的移动应用开发,准备给家里人做一个应用程序用用。向公司手机移动团队咨询了下,觉得使用Android的WebView上手最快,因为WebView等于是一个内置浏览器,可以基于html页面开发,不用去学习Android自带的七七八八的控件。然后加上Jquery mobile的样式渲染和事件等,就能非常方便的做动态应用了。
从现在起,往后一段时间,我打算
如何给线程池命名
daysinsun
线程池
在系统运行后,在线程快照里总是看到线程池的名字为pool-xx,这样导致很不好定位,怎么给线程池一个有意义的名字呢。参照ThreadPoolExecutor类的ThreadFactory,自己实现ThreadFactory接口,重写newThread方法即可。参考代码如下:
public class Named
IE 中"HTML Parsing Error:Unable to modify the parent container element before the
周凡杨
html 解析 error readyState
错误: IE 中"HTML Parsing Error:Unable to modify the parent container element before the child element is closed"
现象: 同事之间几个IE 测试情况下,有的报这个错,有的不报。经查询资料后,可归纳以下原因。
java上传
g21121
java
我们在做web项目中通常会遇到上传文件的情况,用struts等框架的会直接用的自带的标签和组件,今天说的是利用servlet来完成上传。
我们这里利用到commons-fileupload组件,相关jar包可以取apache官网下载:http://commons.apache.org/
下面是servlet的代码:
//定义一个磁盘文件工厂
DiskFileItemFactory fact
SpringMVC配置学习
510888780
spring mvc
spring MVC配置详解
现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了。不过要想灵活运用Spring MVC来应对大多数的Web开发,就必须要掌握它的配置及原理。
一、Spring MVC环境搭建:(Spring 2.5.6 + Hi
spring mvc-jfreeChart 柱图(1)
布衣凌宇
jfreechart
第一步:下载jfreeChart包,注意是jfreeChart文件lib目录下的,jcommon-1.0.23.jar和jfreechart-1.0.19.jar两个包即可;
第二步:配置web.xml;
web.xml代码如下
<servlet>
<servlet-name>jfreechart</servlet-nam
我的spring学习笔记13-容器扩展点之PropertyPlaceholderConfigurer
aijuans
Spring3
PropertyPlaceholderConfigurer是个bean工厂后置处理器的实现,也就是BeanFactoryPostProcessor接口的一个实现。关于BeanFactoryPostProcessor和BeanPostProcessor类似。我会在其他地方介绍。PropertyPlaceholderConfigurer可以将上下文(配置文件)中的属性值放在另一个单独的标准java P
java 线程池使用 Runnable&Callable&Future
antlove
java thread Runnable callable future
1. 创建线程池
ExecutorService executorService = Executors.newCachedThreadPool();
2. 执行一次线程,调用Runnable接口实现
Future<?> future = executorService.submit(new DefaultRunnable());
System.out.prin
XML语法元素结构的总结
百合不是茶
xml 树结构
1.XML介绍1969年 gml (主要目的是要在不同的机器进行通信的数据规范)1985年 sgml standard generralized markup language1993年 html(www网)1998年 xml extensible markup language
改变eclipse编码格式
bijian1013
eclipse 编码格式
1.改变整个工作空间的编码格式
改变整个工作空间的编码格式,这样以后新建的文件也是新设置的编码格式。
Eclipse->window->preferences->General->workspace-
javascript中return的设计缺陷
bijian1013
JavaScript AngularJS
代码1:
<script>
var gisService = (function(window)
{
return
{
name:function ()
{
alert(1);
}
};
})(this);
gisService.name();
&l
【持久化框架MyBatis3八】Spring集成MyBatis3
bit1129
Mybatis3
pom.xml配置
Maven的pom中主要包括:
MyBatis
MyBatis-Spring
Spring
MySQL-Connector-Java
Druid
applicationContext.xml配置
<?xml version="1.0" encoding="UTF-8"?>
&
java web项目启动时自动加载自定义properties文件
bitray
java Web 监听器 相对路径
创建一个类
public class ContextInitListener implements ServletContextListener
使得该类成为一个监听器。用于监听整个容器生命周期的,主要是初始化和销毁的。
类创建后要在web.xml配置文件中增加一个简单的监听器配置,即刚才我们定义的类。
<listener>
<des
用nginx区分文件大小做出不同响应
ronin47
昨晚和前21v的同事聊天,说到我离职后一些技术上的更新。其中有个给某大客户(游戏下载类)的特殊需求设计,因为文件大小差距很大——估计是大版本和补丁的区别——又走的是同一个域名,而squid在响应比较大的文件时,尤其是初次下载的时候,性能比较差,所以拆成两组服务器,squid服务于较小的文件,通过pull方式从peer层获取,nginx服务于较大的文件,通过push方式由peer层分发同步。外部发布
java-67-扑克牌的顺子.从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的.2-10为数字本身,A为1,J为11,Q为12,K为13,而大
bylijinnan
java
package com.ljn.base;
import java.util.Arrays;
import java.util.Random;
public class ContinuousPoker {
/**
* Q67 扑克牌的顺子 从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。
* 2-10为数字本身,A为1,J为1
翟鸿燊老师语录
ccii
翟鸿燊
一、国学应用智慧TAT之亮剑精神A
1. 角色就是人格
就像你一回家的时候,你一进屋里面,你已经是儿子,是姑娘啦,给老爸老妈倒怀水吧,你还觉得你是老总呢?还拿派呢?就像今天一样,你们往这儿一坐,你们之间是什么,同学,是朋友。
还有下属最忌讳的就是领导向他询问情况的时候,什么我不知道,我不清楚,该你知道的你凭什么不知道
[光速与宇宙]进行光速飞行的一些问题
comsci
问题
在人类整体进入宇宙时代,即将开展深空宇宙探索之前,我有几个猜想想告诉大家
仅仅是猜想。。。未经官方证实
1:要在宇宙中进行光速飞行,必须首先获得宇宙中的航行通行证,而这个航行通行证并不是我们平常认为的那种带钢印的证书,是什么呢? 下面我来告诉
oracle undo解析
cwqcwqmax9
oracle
oracle undo解析2012-09-24 09:02:01 我来说两句 作者:虫师收藏 我要投稿
Undo是干嘛用的? &nb
java中各种集合的详细介绍
dashuaifu
java 集合
一,java中各种集合的关系图 Collection 接口的接口 对象的集合 ├ List 子接口 &n
卸载windows服务的方法
dcj3sjt126com
windows service
卸载Windows服务的方法
在Windows中,有一类程序称为服务,在操作系统内核加载完成后就开始加载。这里程序往往运行在操作系统的底层,因此资源占用比较大、执行效率比较高,比较有代表性的就是杀毒软件。但是一旦因为特殊原因不能正确卸载这些程序了,其加载在Windows内的服务就不容易删除了。即便是删除注册表中的相 应项目,虽然不启动了,但是系统中仍然存在此项服务,只是没有加载而已。如果安装其他
Warning: The Copy Bundle Resources build phase contains this target's Info.plist
dcj3sjt126com
ios xcode
http://developer.apple.com/iphone/library/qa/qa2009/qa1649.html
Excerpt:
You are getting this warning because you probably added your Info.plist file to your Copy Bundle
2014之C++学习笔记(一)
Etwo
C++ Etwo Etwo iterator 迭代器
已经有很长一段时间没有写博客了,可能大家已经淡忘了Etwo这个人的存在,这一年多以来,本人从事了AS的相关开发工作,但最近一段时间,AS在天朝的没落,相信有很多码农也都清楚,现在的页游基本上达到饱和,手机上的游戏基本被unity3D与cocos占据,AS基本没有容身之处。so。。。最近我并不打算直接转型
js跨越获取数据问题记录
haifengwuch
jsonp json Ajax
js的跨越问题,普通的ajax无法获取服务器返回的值。
第一种解决方案,通过getson,后台配合方式,实现。
Java后台代码:
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String ca
蓝色jQuery导航条
ini
JavaScript html jquery Web html5
效果体验:http://keleyi.com/keleyi/phtml/jqtexiao/39.htmHTML文件代码:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>jQuery鼠标悬停上下滑动导航条 - 柯乐义<
linux部署jdk,tomcat,mysql
kerryg
jdk tomcat linux mysql
1、安装java环境jdk:
一般系统都会默认自带的JDK,但是不太好用,都会卸载了,然后重新安装。
1.1)、卸载:
(rpm -qa :查询已经安装哪些软件包;
rmp -q 软件包:查询指定包是否已
DOMContentLoaded VS onload VS onreadystatechange
mutongwu
jquery js
1. DOMContentLoaded 在页面html、script、style加载完毕即可触发,无需等待所有资源(image/iframe)加载完毕。(IE9+)
2. onload是最早支持的事件,要求所有资源加载完毕触发。
3. onreadystatechange 开始在IE引入,后来其它浏览器也有一定的实现。涉及以下 document , applet, embed, fra
sql批量插入数据
qifeifei
批量插入
hi,
自己在做工程的时候,遇到批量插入数据的数据修复场景。我的思路是在插入前准备一个临时表,临时表的整理就看当时的选择条件了,临时表就是要插入的数据集,最后再批量插入到数据库中。
WITH tempT AS (
SELECT
item_id AS combo_id,
item_id,
now() AS create_date
FROM
a
log4j打印日志文件 如何实现相对路径到 项目工程下
thinkfreer
Web log4j 应用服务器 日志
最近为了实现统计一个网站的访问量,记录用户的登录信息,以方便站长实时了解自己网站的访问情况,选择了Apache 的log4j,但是在选择相对路径那块 卡主了,X度了好多方法(其实大多都是一样的内用,还一个字都不差的),都没有能解决问题,无奈搞了2天终于解决了,与大家分享一下
需求:
用户登录该网站时,把用户的登录名,ip,时间。统计到一个txt文档里,以方便其他系统调用此txt。项目名
linux下mysql-5.6.23.tar.gz安装与配置
笑我痴狂
mysql linux unix
1.卸载系统默认的mysql
[root@localhost ~]# rpm -qa | grep mysql
mysql-libs-5.1.66-2.el6_3.x86_64
mysql-devel-5.1.66-2.el6_3.x86_64
mysql-5.1.66-2.el6_3.x86_64
[root@localhost ~]# rpm -e mysql-libs-5.1