BeautifulSoup库
一、简介
灵活又方便的网页解析库,处理高效,支持多种解析器。
利用它不用编写正则表达式即可方便地实现网页信息的提取。
二、详解
1.解析库
解析器
使用方法
优势
劣势
Python标准库
BeautifulSoup(markup,"html.parser")
Python的内置标准库,执行速度适中,文档容错能力强
Python 2.7.3 or 3.2.2 版本前中文容错能力弱
lxml HTML解析器
BeautifulSoup(markup,'lxml')
速度快,文档容错能力强
需要安装C语言库
lxml XML解析器
BeautifulSoup(markup,'xml')
速度快,唯一支持XML的解析器
需要安装C语言库
html5lib
BeautifulSoup(markup,'html5lib')
最好的容错性,以浏览器的方式解析文档,生成HTML5格式的文档
速度慢,不依赖扩展
2.基本使用
html = """The Dormouse's story
The Dormouse's story
Once upon a time there were three little sisters;and their names were
Lacle and
Tillie ;
and they lived at the bottom of a well.
...
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(html,'lxml')
print(soup.prettify())
print(soup.title.string)
3.标签选择器
3.1选择元素
html = """The Dormouse's story
The Dormouse's story
Once upon a time there were three little sisters;and their names were
Lacle and
Tillie ;
and they lived at the bottom of a well.
...
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(html,'lxml')
print(soup.title)
print(type(soup.title))
print(soup.head)
print(soup.p)
如果一个标签存在多个,只返回第一个。
3.2获取名称
html = """The Dormouse's story
The Dormouse's story
Once upon a time there were three little sisters;and their names were
Lacle and
Tillie ;
and they lived at the bottom of a well.
...
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(html,'lxml')
print(soup.title.name)
3.3获取属性
html = """The Dormouse's story
The Dormouse's story
Once upon a time there were three little sisters;and their names were
Lacle and
Tillie ;
and they lived at the bottom of a well.
...
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(html,'lxml')
print(soup.p.attrs['name'])
print(soup.p['name'])
3.4获取内容
html = """The Dormouse's story
The Dormouse's story
Once upon a time there were three little sisters;and their names were
Lacle and
Tillie ;
and they lived at the bottom of a well.
...
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(html,'lxml')
print(soup.p.string)
3.5嵌套选择
html = """The Dormouse's story
The Dormouse's story
Once upon a time there were three little sisters;and their names were
Lacle and
Tillie ;
and they lived at the bottom of a well.
...
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(html,'lxml')
print(soup.head.title.string)
3.6子节点和子孙节点
html = """
The Dormouse's story
Once upon a time there were three little sisters;and their names were
Lacle
and
Tillie
;
and they lived at the bottom of a well.
...
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(html,'lxml')
print(soup.p.contents)
html = """
The Dormouse's story
Once upon a time there were three little sisters;and their names were
Lacle
and
Tillie
;
and they lived at the bottom of a well.
...
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(html,'lxml')
print(soup.p.children)
for i,child in enumerate(soup.p.children):
print(i,child)
html = """
The Dormouse's story
Once upon a time there were three little sisters;and their names were
Lacle
and
Tillie
;
and they lived at the bottom of a well.
...
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(html,'lxml')
print(soup.p.descendants)
for i,child in enumerate(soup.p.descendants):#所有的子孙节点
print(i,child)
父节点和祖先节点
html = """
The Dormouse's story
Once upon a time there were three little sisters;and their names were
Lacle
and
Tillie
;
and they lived at the bottom of a well.
...
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(html,'lxml')
print(soup.a.parent)
html = """
The Dormouse's story
Once upon a time there were three little sisters;and their names were
Lacle
and
Tillie
;
and they lived at the bottom of a well.
...
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(html,'lxml')
print(list(enumerate(soup.a.parents)))#祖先节点
兄弟节点
html = """
The Dormouse's story
Once upon a time there were three little sisters;and their names were
Lacle
and
Tillie
;
and they lived at the bottom of a well.
...
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(html,'lxml')
print(list(enumerate(soup.a.next_siblings)))
print(list(enumerate(soup.a.previous_siblings)))
标准选择器
find_all(name,attrs,recursive,text,**kwargs)
可以根据标签名,属性,内容查找文档。
html = """
hello
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(html,'lxml')
print(soup.find_all('ul'))#标签名name
print(type(soup.find_all('ul')[0]))
html = """
hello
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(html,'lxml')
for ul in soup.find_all('ul'):
print(ul.find_all('li'))
html = """
hello
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(html,'lxml')
print(soup.find_all(attrs={'id':'list-1'}))#属性attr
print(soup.find_all(attrs={'name':'elements'}))
html = """
hello
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(html,'lxml')
print(soup.find_all(id='list-1'))#对于特殊类型的属性,可以直接这么写
print(soup.find_all(class_='element'))
html = """
hello
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(html,'lxml')
print(soup.find_all(text='Foo'))#利用text进行选择
find(name,attrs,recursive,text,**kwargs)
返回单个元素,会返回列表里面第一个值。
html = """
hello
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(html,'lxml')
print(soup.find('ul'))
print(type(soup.find('ul')))
print(soup.find('page'))#不存在返回None
find_parents()#返回所有祖先节点
find_parent()#返回直接父节点
find_next_siblings()#返回后面所有兄弟节点
find_next_sibling()#返回后面第一个兄弟节点
find_previous_siblings()#返回前面所有兄弟节点
find_previous_sibling()#返回前面第一个兄弟节点
find_all_next()#返回节点后所有符合条件的节点
find_next()#返回第一个符合条件的节点
find_all_previous()#返回节点前所有符合条件的节点
find_previous()#返回节点前第一个符合条件的节点
CSS选择器
通过select()直接传入CSS选择器即可完成选择。
html = """
hello
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(html,'lxml')
print(soup.select('.panel .panel-heading')))
print(soup.select('ul li'))
print(soup.select('#list-2 .element'))
html = """
hello
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(html,'lxml')
for ul in soup.select('ul'):
print(ul.select('li'))
获取属性
html = """
hello
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(html,'lxml')
for ul in soup.select('ul'):
print(ul['id'])
print(ul.attrs['id'])
获取内容
html = """
hello
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(html,'lxml')
for ul in soup.select('ul'):
print(li.get_text())
总结
1.推荐使用lxml解析库,必要时使用html.parser
2.标签选择器筛选功能弱但是速度快。
3.建议使用find(),find_all()匹配单个结果或者多个结果。
4.如果对css选择器熟悉选择建议使用select()。
5.记住常用的获取属性和文本值的方法。
你可能感兴趣的:(python)
python如何将数据生成excel_Python如何将数据导出excel的技巧分享
weixin_39528697
本篇文章主要介绍了python技能之导出excel的实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧本文介绍了python技能之导出excel的实例代码,正好能用到,写出来分享给大家作为一个数据分析师,下面的需求是经常会遇到的。从数据库或者现有的文本文件中提取符合要求的数据,做一个二次处理,处理完成后的数据最终存储到excel表格中供其他部门的人继续二次分析。在
Python数据处理之导入导出Excel数据
master_chenchengg
python 能力提升 面试宝典 技术 IT信息化
Python数据处理之导入导出Excel数据开启数据之旅:为什么Python是Excel数据处理的最佳拍档?准备工作:让Python与Excel握手言欢数据入境:把Excel表格里的宝藏带入Python世界数据出境:将Python分析结果优雅地送回Excel家园玩转数据:用Python对Excel数据进行清洗、转换和分析自动化魔法:编写Python脚本实现Excel数据处理自动化跨界合作:整合其他
第一天:爬虫介绍
朱剑君
Python爬虫训练营 爬虫 python
每天上午9点左右更新一到两篇文章到专栏《Python爬虫训练营》中,对于爬虫有兴趣的伙伴可以订阅专栏一起学习,完全免费。键盘为桨,代码作帆。这趟为期30天左右的Python爬虫特训即将启航,每日解锁新海域:从Requests库的浪花到Scrapy框架的深流,从反爬迷雾中的破局到数据清洗的澄澈。我们拆解网页结构如同解读星图,让XPath与正则表达式化作导航罗盘。每个深夜的代码调试,终将凝结成破晓时的
第三天:爬取数据-urllib库.
朱剑君
Python爬虫训练营 python 爬虫
每天上午9点左右更新一到两篇文章到专栏《Python爬虫训练营》中,对于爬虫有兴趣的伙伴可以订阅专栏一起学习,完全免费。键盘为桨,代码作帆。这趟为期30天左右的Python爬虫特训即将启航,每日解锁新海域:从Requests库的浪花到Scrapy框架的深流,从反爬迷雾中的破局到数据清洗的澄澈。我们拆解网页结构如同解读星图,让XPath与正则表达式化作导航罗盘。每个深夜的代码调试,终将凝结成破晓时的
使用Seaborn绘制相关性热力图
认真写代码i
python 开发语言 Python
使用Seaborn绘制相关性热力图相关性热力图是一种常用的可视化工具,用于显示变量之间的相关性。在Python中,Seaborn是一个功能强大且易于使用的数据可视化库,可以轻松地创建相关性热力图。在本文中,我们将学习如何使用Seaborn的heatmap函数来绘制相关性热力图。首先,我们需要安装Seaborn库。你可以使用以下命令通过pip安装Seaborn:pipinstallseaborn安装
python编程入门学习(3)——自用笔记
徐少19
python入门 python
目录第五章:if语句一个简单的示例条件测试if语句使用if语句处理列表第六章:字典一个简单的字典使用字典遍历字典嵌套在列表中存储字典在字典中存储列表在字典中存储字典第五章:if语句一个简单的示例#if语句示例cars=['bmw','audi','toyota','subaru']forcarincars:ifcar=='bmw':print(car.upper())else:print(car.
《一文吃透!NLTK与SpaCy,自然语言处理的神兵利器》
人工智能深度学习
在人工智能的璀璨星空中,自然语言处理(NLP)无疑是最为耀眼的领域之一。它让机器能够理解、处理和生成人类语言,极大地推动了智能交互的发展。而在Python的NLP工具库中,NLTK和SpaCy就像两把锋利的宝剑,各自散发着独特的光芒。今天,就让我们深入探究这两款工具的使用技巧与优势,为你的NLP之旅增添强大助力。一、NLTK:自然语言处理的瑞士军刀NLTK(NaturalLanguageToolk
Python 第三方库 PyQt5 的安装
狐凄
实例 学习 开发语言
目录前言PyQt5安装不同操作系统PyQt5安装一、Windows系统二、macOS系统三、Linux系统(以Ubuntu为例)安装PyQt5可能会遇到的问题一、环境相关问题二、依赖问题三、网络问题四、安装工具问题五、运行时问题六、环境配置问题七、安装源问题八、检查错误信息九、运行时错误十、尝试不同的安装方法问题解决环境相关问题一、Python版本兼容性问题二、操作系统特定问题三、依赖库问题四、环
opencv全面详解教程
听忆.
机器学习 深度学习 计算机视觉 人工智能
opencv全面详解教程1.OpenCV简介2.安装OpenCV2.1使用pip安装(适用于Python)2.2通过conda安装2.3从源码编译(高级)3.OpenCV基本操作3.1读取和显示图像3.2保存图像3.3视频处理4.图像处理操作4.1调整大小和裁剪4.2颜色空间转换4.3图像平滑(滤波)4.4边缘检测5.形态学操作6.特征检测与匹配6.1角点检测(Harris)6.2SIFT、SUR
ta-lib使用
lvming-elena
C++ 大数据
ta-lib介绍TA-Lib,全称“TechnicalAnalysisLibrary”,即技术分析库,是Python金融量化的高级库,涵盖了150多种股票、期货交易软件中常用的技术分析指标,如MACD、RSI、KDJ、动量指标、布林带等等。TA-Lib可分为10个子板块:OverlapStudies(重叠指标),MomentumIndicators(动量指标),VolumeIndicators(交
利用Python进行数据清洗与预处理:Pandas的高级用法
步入烟尘
python 数据库 开发语言
本文已收录于《Python超入门指南全册》本专栏专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从基础到精通不断进阶深入,后续还有实战项目,轻松应对面试,专栏订阅地址:https://blog.csdn.net/mrdeam/category_12647587.html优点:订阅限时19.9付费专栏,私信博主还可进入全栈VIP答疑群,作者优先解答机会(代码指导、远程服务),群里大佬众多可以
Python Pandas数据清洗之缺失数据处理
python慕遥
Pandas python pandas 开发语言
大家好,在数据分析和处理过程中,缺失数据是常见且不可避免的现象。无论是在数据收集、传输或存储的过程中,数据集可能会出现部分丢失。缺失数据的存在不仅会影响数据的完整性,还可能对后续的数据分析和建模造成不利影响。为了保证数据质量,合理处理缺失数据至关重要。Python的Pandas库提供了强大的工具,能够高效处理数据中的缺失值,特别是通过插值和填充技术来弥补数据的缺失。本文将介绍如何使用Pandas处
TA-Lib:Python金融分析核心库使用指南
一筐猪的头发丝
本文还有配套的精品资源,点击获取简介:TA-Lib是一个广泛应用于金融分析领域的库,它包含多种技术分析指标,适用于股票、期货和外汇等金融产品的技术分析。通过这个库,开发者可以利用Python编程语言进行历史市场数据的技术分析,包括趋势指标、振荡器、成交量分析以及形态识别等。TA-Lib还支持自动化交易系统的开发、投资组合优化和风险管理,是金融专业人士和数据分析师不可或缺的工具。1.TA-Lib库概
利用Python pandas 数据清洗详细教程
小白教程
python 运维 数据库 python pandas 开发语言
文章目录前言一、环境搭建1.下载Python2.安装Python3使用pip安装Pandas二、使用步骤1.读取数据2.处理缺失值3.处理重复值4.处理异常值5.数据类型转换6.处理不一致的数据前言pandas是Python数据处理与分析的得力工具,功能强大,是数据从业者进行数据清洗的首选。本教程将系统介绍用pandas进行数据清洗,涵盖数据读取、缺失值与重复值处理、异常值修正、数据类型转换等要点
Python 报错分析:IndexError: list index out of range
小馒头学python
问题 python 开发语言
在Python编程中,IndexError:listindexoutofrange是一个常见的错误,通常发生在我们尝试访问超出列表(或其他可迭代对象)有效范围的索引时。这个错误通常会让初学者感到困惑,但实际上它是很直观的,只要理解了列表的索引机制,我们就能轻松避免它。本文将带你深入了解这个错误的原因,并展示如何通过几个实际的例子来解决它。1.什么是IndexError:listindexoutof
WSL中安装python环境详解
小蘑菇二号
python
在WindowsSubsystemforLinux(WSL)上安装Python环境,按照以下步骤操作:确认WSL已安装并更新:首先,确保已经安装了WSL,并且您的WSL环境已经更新至最新状态。打开WSL终端:打开Windows的开始菜单,找到并启动WSL发行版(例如Ubuntu)。确认Python已安装:在WSL终端中,输入python3--version来确认Python是否已安装,并查看其版本
Python图形界面 Tkinter入门6 数据库sqlite3
mango大侠
Python python 数据库 sqlite3 tkinter
6.1数据库sqlite3基础fromtkinterimport*importsqlite3importosroot=Tk()root.title('数据库sqlite3操作')root.geometry('400x400')#sqlite3-------------------------------------------------##检查数据库文件是否存在,不存在就创建,user表:ifn
小学python教材电子版_【python爬虫】中小学人教版教材下载 (调用IDM)
weixin_39981185
小学python教材电子版
根据楼主的python改的。就没做成运行文件,代码如下:新手勿喷。#!/usr/bin/envpython3#encoding:utf-8'''@author:zengyun@software:tool@application:@file:down.py@time:2020/2/2115:46@desc:'''importrequests,bs4fromtqdmimporttqdm#获取文件名称和
flask实现mysql连接池_如何在python flask中使用mysql.connection数据库池
weixin_39710396
flask实现mysql连接池
Traceback(mostrecentcalllast):File"/home/myuser/virtualenv/py2.7-myapp-server-logger/lib/python2.7/site-packages/flask/app.py",line1836,in__call__returnself.wsgi_app(environ,start_response)File"/home/
AWS上基于Llama 3模型检测Amazon Redshift里文本数据的语法和语义错误的设计方案
weixin_30777913
数据仓库 云计算 aws llama
一、技术栈选型核心服务:AmazonRedshift:存储原始文本和检测结果AmazonBedrock:托管Llama370B模型AWSLambda:无服务计算(Python运行时)AmazonS3:中间数据存储AWSStepFunctions:工作流编排辅助工具:psycopg2:RedshiftPython连接器boto3:AWSSDKforPythonPandas:数据批处理JSONSche
Python爬虫实战教程——如何抓取社交媒体用户信息(以Twitter和Instagram为例)
Python爬虫项目
2025年爬虫实战项目 python 爬虫 媒体 开发语言 信息可视化
1.引言社交媒体平台如Twitter和Instagram每天都会生成大量的用户内容,包括文本、图片、视频等。对于数据分析师和研究人员来说,抓取社交媒体平台的数据是进行趋势分析、情感分析、用户行为分析等工作的基础。本文将介绍如何通过Python爬虫技术抓取Twitter和Instagram的用户信息。我们将详细探讨如何使用最新的技术栈和API来实现社交媒体数据的抓取,并结合具体的代码示例,帮助您快速
pptx文档提取信息
DreamBoy_W.W.Y
知识图谱 python
目录一、前言二、python-pptx提取核心代码三、LibreOffice转换pdf再提取的核心代码一、前言pptx文档提取解析常用的库。如果只需要解析.pptx的文本、表格、图片,推荐使用python-pptx(开源,轻量级)。如果需要高性能、支持.ppt、动画、格式转换,推荐Aspose.Slides(收费)。如果需要PPTX转PDF或者HTML,适用于Linux服务器,推荐LibreOff
python 如何解析PDF文件,并将其翻译为其他语言
openwin_top
python编程示例系列 pdf python
要解析PDF文件并将其翻译为其他语言,可以使用Python中的PyPDF2库和baidu_trans库。以下是解析PDF文件并将其翻译为其他语言的基本步骤:安装PyPDF2和baidu_trans库pipinstallPyPDF2baidu_trans可以使用PyPDF2库中的PdfFileWriter和PdfFileMerger类。以下是将翻译后的文本重新组织为PDF文档的代码示例:import
python flask django在线投票系统 md14i
专注分享bishe530
python flask django
文章目录具体实现截图项目技术介绍论文写作思路核心代码部分展示可定制开发功能创新亮点django项目示例源码/演示视频获取方式具体实现截图项目技术介绍Python版本:python3.7以上框架支持:flask/django开发软件:PyCharm数据库:mysql数据库工具:Navicat浏览器:谷歌浏览器(PycharmFlaskDjangoVuemysql)论文写作思路第一部分绪论,主要介绍所
python系列:使用Python快速读取PDF中的表单数据以及error处理
坦笑&&life
# python python pdf 数据库
使用Python快速读取PDF中的表单数据以及error处理使用Python快速读取PDF中的表单数据安装PythonPDF库Python读取PDF表单数据1、一次性读取多种PDF表单的数据2、读取特定PDF表单的数据python读取PDF文件中文本、表格、图片python读取PDF文件中文本、表格、图片一、文本读取二、图片读取三、表格读取问题AttributeError:'PdfPageBase
Python如何用pdfplumber读取解析pdf文件
ToMiky明明
python pdf 开发语言
1.首先安装pdfplumber库:pipinstallpdfplumber2.如果安装失败,首先应该升级pip,用低版本的pip可能导致pdfplumber安装不成功:python-mpipinstall--upgradepip#coding:utf-8importpdfplumberwithpdfplumber.open('./test.pdf')aspdf:#遍历每个页面forpageinp
Python利用伪代码制作一个简单的登录系统
千帆过尽皆不是
python 开发语言
一.代码所需知识1.1伪代码伪代码(Pseudocode)是一种非正式的,用于描述模块结构图的语言。人们在实现一个算法时,尤其是对于那些熟练于不同编程语言的程序员要理解一个算法功能时可能很难,因为程序语言的形式限制了程序员对程序关键部分的理解。所以伪代码就应运而生了,伪代码提供了更多的设计信息。1.2for...else...循环在for...else...的循环中,很多人以为进入了for的循环后
Python - WSGI 和 ASGI 服务器
小菠萝测试笔记
网络 网关 java python http
WSGIwiki上的解释WebServerGatewayInterfaceWeb服务器网关接口是为Python定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口WSGI的问题随着移动网络的发展,Web技术也在升级,比如WebSocket、HTTP/2,HTTP/3WSGI应用是一个单调用、同步接口,即输入一个请求,返回一个响应;这个模式无法支持长连接或者WebSocket这样的连接
python解析pdf文件
irisMoon06
python pdf microsoft
先安装PyPDF2,据说这是目前最好的解析pdf的包pipinstallPyPDF2PDF文件分割、拼接importosfromPyPDF2importPdfFileWriter,PdfFileReaderdefclear_dir(dir_path): """清空目录下的文件""" names=os.listdir(dir_path) fornameinnames: file_path
如何解决Python不支持中文路径的问题?
cda2024
python 开发语言
在编程的世界里,遇到问题并不罕见,但有些问题可能会让人感到格外棘手。比如,你是否曾经在使用Python处理文件时,因为路径中包含中文字符而头疼不已?这个问题不仅影响了代码的可读性和健壮性,还可能导致程序运行失败。今天,我们就来深入探讨一下“如何解决Python不支持中文路径的问题”,希望能为你的编程之路扫清障碍。问题背景Python与中文路径Python是一种广泛使用的高级编程语言,以其简洁明了的
html页面js获取参数值
0624chenhong
html
1.js获取参数值js
function GetQueryString(name)
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = windo
MongoDB 在多线程高并发下的问题
BigCat2013
mongodb DB 高并发 重复数据
最近项目用到 MongoDB , 主要是一些读取数据及改状态位的操作. 因为是结合了最近流行的 Storm进行大数据的分析处理,并将分析结果插入Vertica数据库,所以在多线程高并发的情境下, 会发现 Vertica 数据库中有部分重复的数据. 这到底是什么原因导致的呢?笔者开始也是一筹莫 展,重复去看 MongoDB 的 API , 终于有了新发现 :
com.mongodb.DB 这个类有
c++ 用类模版实现链表(c++语言程序设计第四版示例代码)
CrazyMizzz
数据结构 C++
#include<iostream>
#include<cassert>
using namespace std;
template<class T>
class Node
{
private:
Node<T> * next;
public:
T data;
最近情况
麦田的设计者
感慨 考试 生活
在五月黄梅天的岁月里,一年两次的软考又要开始了。到目前为止,我已经考了多达三次的软考,最后的结果就是通过了初级考试(程序员)。人啊,就是不满足,考了初级就希望考中级,于是,这学期我就报考了中级,明天就要考试。感觉机会不大,期待奇迹发生吧。这个学期忙于练车,写项目,反正最后是一团糟。后天还要考试科目二。这个星期真的是很艰难的一周,希望能快点度过。
linux系统中用pkill踢出在线登录用户
被触发
linux
由于linux服务器允许多用户登录,公司很多人知道密码,工作造成一定的障碍所以需要有时踢出指定的用户
1/#who 查出当前有那些终端登录(用 w 命令更详细)
# who
root pts/0 2010-10-28 09:36 (192
仿QQ聊天第二版
肆无忌惮_
qq
在第一版之上的改进内容:
第一版链接:
http://479001499.iteye.com/admin/blogs/2100893
用map存起来号码对应的聊天窗口对象,解决私聊的时候所有消息发到一个窗口的问题.
增加ViewInfo类,这个是信息预览的窗口,如果是自己的信息,则可以进行编辑.
信息修改后上传至服务器再告诉所有用户,自己的窗口
java读取配置文件
知了ing
1,java读取.properties配置文件
InputStream in;
try {
in = test.class.getClassLoader().getResourceAsStream("config/ipnetOracle.properties");//配置文件的路径
Properties p = new Properties()
__attribute__ 你知多少?
矮蛋蛋
C++ gcc
原文地址:
http://www.cnblogs.com/astwish/p/3460618.html
GNU C 的一大特色就是__attribute__ 机制。__attribute__ 可以设置函数属性(Function Attribute )、变量属性(Variable Attribute )和类型属性(Type Attribute )。
__attribute__ 书写特征是:
jsoup使用笔记
alleni123
java 爬虫 JSoup
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.7.3</version>
</dependency>
2014/08/28
今天遇到这种形式,
JAVA中的集合 Collectio 和Map的简单使用及方法
百合不是茶
list map set
List ,set ,map的使用方法和区别
java容器类类库的用途是保存对象,并将其分为两个概念:
Collection集合:一个独立的序列,这些序列都服从一条或多条规则;List必须按顺序保存元素 ,set不能重复元素;Queue按照排队规则来确定对象产生的顺序(通常与他们被插入的
杀LINUX的JOB进程
bijian1013
linux unix
今天发现数据库一个JOB一直在执行,都执行了好几个小时还在执行,所以想办法给删除掉
系统环境:
ORACLE 10G
Linux操作系统
操作步骤如下:
第一步.查询出来那个job在运行,找个对应的SID字段
select * from dba_jobs_running--找到job对应的sid
&n
Spring AOP详解
bijian1013
java spring AOP
最近项目中遇到了以下几点需求,仔细思考之后,觉得采用AOP来解决。一方面是为了以更加灵活的方式来解决问题,另一方面是借此机会深入学习Spring AOP相关的内容。例如,以下需求不用AOP肯定也能解决,至于是否牵强附会,仁者见仁智者见智。
1.对部分函数的调用进行日志记录,用于观察特定问题在运行过程中的函数调用
[Gson六]Gson类型适配器(TypeAdapter)
bit1129
Adapter
TypeAdapter的使用动机
Gson在序列化和反序列化时,默认情况下,是按照POJO类的字段属性名和JSON串键进行一一映射匹配,然后把JSON串的键对应的值转换成POJO相同字段对应的值,反之亦然,在这个过程中有一个JSON串Key对应的Value和对象之间如何转换(序列化/反序列化)的问题。
以Date为例,在序列化和反序列化时,Gson默认使用java.
【spark八十七】给定Driver Program, 如何判断哪些代码在Driver运行,哪些代码在Worker上执行
bit1129
driver
Driver Program是用户编写的提交给Spark集群执行的application,它包含两部分
作为驱动: Driver与Master、Worker协作完成application进程的启动、DAG划分、计算任务封装、计算任务分发到各个计算节点(Worker)、计算资源的分配等。
计算逻辑本身,当计算任务在Worker执行时,执行计算逻辑完成application的计算任务
nginx 经验总结
ronin47
nginx 总结
深感nginx的强大,只学了皮毛,把学下的记录。
获取Header 信息,一般是以$http_XX(XX是小写)
获取body,通过接口,再展开,根据K取V
获取uri,以$arg_XX
&n
轩辕互动-1.求三个整数中第二大的数2.整型数组的平衡点
bylijinnan
数组
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ExoWeb {
public static void main(String[] args) {
ExoWeb ew=new ExoWeb();
System.out.pri
Netty源码学习-Java-NIO-Reactor
bylijinnan
java 多线程 netty
Netty里面采用了NIO-based Reactor Pattern
了解这个模式对学习Netty非常有帮助
参考以下两篇文章:
http://jeewanthad.blogspot.com/2013/02/reactor-pattern-explained-part-1.html
http://gee.cs.oswego.edu/dl/cpjslides/nio.pdf
AOP通俗理解
cngolon
spring AOP
1.我所知道的aop 初看aop,上来就是一大堆术语,而且还有个拉风的名字,面向切面编程,都说是OOP的一种有益补充等等。一下子让你不知所措,心想着:怪不得很多人都和 我说aop多难多难。当我看进去以后,我才发现:它就是一些java基础上的朴实无华的应用,包括ioc,包括许许多多这样的名词,都是万变不离其宗而 已。 2.为什么用aop&nb
cursor variable 实例
ctrain
variable
create or replace procedure proc_test01
as
type emp_row is record(
empno emp.empno%type,
ename emp.ename%type,
job emp.job%type,
mgr emp.mgr%type,
hiberdate emp.hiredate%type,
sal emp.sal%t
shell报bash: service: command not found解决方法
daizj
linux shell service jps
今天在执行一个脚本时,本来是想在脚本中启动hdfs和hive等程序,可以在执行到service hive-server start等启动服务的命令时会报错,最终解决方法记录一下:
脚本报错如下:
./olap_quick_intall.sh: line 57: service: command not found
./olap_quick_intall.sh: line 59
40个迹象表明你还是PHP菜鸟
dcj3sjt126com
设计模式 PHP 正则表达式 oop
你是PHP菜鸟,如果你:1. 不会利用如phpDoc 这样的工具来恰当地注释你的代码2. 对优秀的集成开发环境如Zend Studio 或Eclipse PDT 视而不见3. 从未用过任何形式的版本控制系统,如Subclipse4. 不采用某种编码与命名标准 ,以及通用约定,不能在项目开发周期里贯彻落实5. 不使用统一开发方式6. 不转换(或)也不验证某些输入或SQL查询串(译注:参考PHP相关函
Android逐帧动画的实现
dcj3sjt126com
android
一、代码实现:
private ImageView iv;
private AnimationDrawable ad;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout
java远程调用linux的命令或者脚本
eksliang
linux ganymed-ssh2
转载请出自出处:
http://eksliang.iteye.com/blog/2105862
Java通过SSH2协议执行远程Shell脚本(ganymed-ssh2-build210.jar)
使用步骤如下:
1.导包
官网下载:
http://www.ganymed.ethz.ch/ssh2/
ma
adb端口被占用问题
gqdy365
adb
最近重新安装的电脑,配置了新环境,老是出现:
adb server is out of date. killing...
ADB server didn't ACK
* failed to start daemon *
百度了一下,说是端口被占用,我开个eclipse,然后打开cmd,就提示这个,很烦人。
一个比较彻底的解决办法就是修改
ASP.NET使用FileUpload上传文件
hvt
.net C# hovertree asp.net webform
前台代码:
<asp:FileUpload ID="fuKeleyi" runat="server" />
<asp:Button ID="BtnUp" runat="server" onclick="BtnUp_Click" Text="上 传" />
代码之谜(四)- 浮点数(从惊讶到思考)
justjavac
浮点数 精度 代码之谜 IEEE
在『代码之谜』系列的前几篇文章中,很多次出现了浮点数。 浮点数在很多编程语言中被称为简单数据类型,其实,浮点数比起那些复杂数据类型(比如字符串)来说, 一点都不简单。
单单是说明 IEEE浮点数 就可以写一本书了,我将用几篇博文来简单的说说我所理解的浮点数,算是抛砖引玉吧。 一次面试
记得多年前我招聘 Java 程序员时的一次关于浮点数、二分法、编码的面试, 多年以后,他已经称为了一名很出色的
数据结构随记_1
lx.asymmetric
数据结构 笔记
第一章
1.数据结构包括数据的
逻辑结构、数据的物理/存储结构和数据的逻辑关系这三个方面的内容。 2.数据的存储结构可用四种基本的存储方法表示,它们分别是
顺序存储、链式存储 、索引存储 和 散列存储。 3.数据运算最常用的有五种,分别是
查找/检索、排序、插入、删除、修改。 4.算法主要有以下五个特性:
输入、输出、可行性、确定性和有穷性。 5.算法分析的
linux的会话和进程组
网络接口
linux
会话: 一个或多个进程组。起于用户登录,终止于用户退出。此期间所有进程都属于这个会话期。会话首进程:调用setsid创建会话的进程1.规定组长进程不能调用setsid,因为调用setsid后,调用进程会成为新的进程组的组长进程.如何保证? 先调用fork,然后终止父进程,此时由于子进程的进程组ID为父进程的进程组ID,而子进程的ID是重新分配的,所以保证子进程不会是进程组长,从而子进程可以调用se
二维数组 元素的连续求解
1140566087
二维数组 ACM
import java.util.HashMap;
public class Title {
public static void main(String[] args){
f();
}
// 二位数组的应用
//12、二维数组中,哪一行或哪一列的连续存放的0的个数最多,是几个0。注意,是“连续”。
public static void f(){
也谈什么时候Java比C++快
windshome
java C++
刚打开iteye就看到这个标题“Java什么时候比C++快”,觉得很好笑。
你要比,就比同等水平的基础上的相比,笨蛋写得C代码和C++代码,去和高手写的Java代码比效率,有什么意义呢?
我是写密码算法的,深刻知道算法C和C++实现和Java实现之间的效率差,甚至也比对过C代码和汇编代码的效率差,计算机是个死的东西,再怎么优化,Java也就是和C