前言:
之前学习了用python爬虫的基本知识,现在计划用爬虫去做一些实际的数据统计功能。由于前段时间演员的诞生带火了几个年轻的实力派演员,想用爬虫程序搜索某论坛中对于某些演员的讨论热度,并按照日期统计每天的讨论量。
这个项目总共分为两步:
1.获取所有帖子的链接:
将最近一个月内的帖子链接保存到数组中
2.从回帖中搜索演员名字:
从数组中打开链接,翻出该链接的所有回帖,在回帖中查找演员的名字
获取所有帖子的链接:
搜索的范围依然是以虎扑影视区为界限。虎扑影视区一天约5000个回帖,一月下来超过15万回帖,作为样本来说也不算小,有一定的参考价值。
完成这一步骤,主要分为以下几步:
1.获取当前日期
2.获取30天前的日期
3.记录从第一页往后翻的所有发帖链接
1.获取当前日期
这里我们用到了datetime模块。使用datetime.datetime.now(),可以获取当前的日期信息以及时间信息。在这个项目中,只需要用到日期信息就好。
2.获取30天前的日期
用datetime模块的优点在于,它还有一个很好用的函数叫做timedelta,可以自行计算时间差。当给定参数days=30时,就会生成30天的时间差,再用当前日期减去delta,可以得到30天前的日期,将该日期保存为startday,即开始进行统计的日期。不然计算时间差需要自行考虑跨年闰年等因素,要通过一个较为复杂的函数才可以完成。
today = datetime.datetime.now() delta = datetime.timedelta(days=30) i = "%s" %(today - delta) startday = i.split(' ')[0] today = "%s" %today today = today.split(' ')[0]
在获得开始日期与结束日期后,由于依然需要记录每一天每个人的讨论数,根据这两个日期生成两个字典,分别为actor1_dict与actor2_dict。字典以日期为key,以当日讨论数目作为value,便于每次新增查找记录时更新对应的value值。
strptime, strftime = datetime.datetime.strptime, datetime.datetime.strftime days = (strptime(today, "%Y-%m-%d") - strptime(startday, "%Y-%m-%d")).days for i in range(days+1): temp = strftime(strptime(startday, "%Y-%m-%d") + datetime.timedelta(i), "%Y-%m-%d") actor1_dict[temp] = 0 actor2_dict[temp] = 0
3.记录从第一页往后翻的所有发帖链接
如图1所示,采用发帖顺序排列,可以得到所有的发帖时间(精确到分钟)。右键并点击查看网页源代码,可以发现当前帖子的链接页面,用正则表达式的方式抓取链接。
首先依然是获取30天前的日期,再抓取第i页的源代码,用正则表达式去匹配,获取网页链接和发帖时间。如图2所示:
比较发帖时间,如果小于30天前的日期,则获取发帖链接结束,返回当前拿到的链接数组,代码如下
def all_movie_post(ori_url):
i = datetime.datetime.now()
delta = datetime.timedelta(days=30)
i = "%s" %(i - delta)
day = i.split(' ')[0] # 获得30天前的日子
print day
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = { 'User-Agent' : user_agent }
post_list = []
for i in range(1,100):
request = urllib2.Request(ori_url + '-{}'.format(i),headers = headers)
response = urllib2.urlopen(request)
content = response.read().decode('utf-8')
pattern = re.compile('.*? (.*?) ', re.S)
items = re.findall(pattern,content)
for item in items:
if item[1] == '2011-09-16':
continue
if item[1] > day: #如果是30天内的帖子,保存
post_list.append('https://bbs.hupu.com' + item[0])
else: #如果已经超过30天了,就直接返回
return post_list
return post_list
函数的传参是链接首页,在函数中修改页码,并继续搜索。
从回帖中搜索演员名字:
接下来的步骤也是通过一个函数来解决。函数的传参包括上一步中得到的链接数组,已经想要查询的演员名字(这个功能可以进一步扩展,将演员名字也用列表的形式传输,同时上一步生成的字典也可以多一些)。
由于虎扑论坛会将一些得到认可的回帖摆在前端,即重复出现。如图3所示:
为了避免重复统计,将这些重复先去除,代码如下:
if i == 0:
index = content.find('更多亮了的回帖')
if index >= 0:
content = content[index:]
else:
index = content.find('我要推荐')
content = content[index:]
去除的规则其实并不重要,因为每个论坛都有自己的格式,只要能搞清楚源代码中是怎么写的,剩下的操作就可以自己根据规则进行。
每个回帖格式大致如图4,
用对应的正则表达式再去匹配,找到每个帖子每一个回帖的内容,在内容中搜索演员名字,即一开始的actor_1与actor_2,如果搜到,则在对应回帖日期下+1。
最终将两位演员名字出现频率返回,按日期记录的字典由于是全局变量,不需要返回。
web_str = '(.*?) .*? .*?[\s]*[\s]*(.*?) ' #找到回帖内容的正则
pattern = re.compile(web_str, re.S)
items = re.findall(pattern,content)
for item in items:
#if '引用' in item: #如果引用别人的回帖,则去除引用部分
#try:
#item = item.split('')[1]
#except:
#print item
#print item.decode('utf-8')
if actor_1 in item[1]:
actor1_dict[item[0]] += 1
actor_1_freq += 1
if actor_2 in item[1]:
actor2_dict[item[0]] += 1
actor_2_freq += 1
至此,我们就利用爬虫知识,成功完成对论坛关键字的频率搜索了。
这只是一个例子,关键字可以任意,这也不只是一个针对演员的诞生而写的程序。将演员名字换成其他词,就可以做到类似“您的年度关键字”这样的结果,根据频率大小来显示文字大小。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
你可能感兴趣的:(Python爬虫抓取论坛关键字过程解析)
React Native常见报错解决整理
飞翔的熊blabla
react
转载于:https://blog.csdn.net/u010127332/article/details/83622209ReactNative从开发环境到入门练手,再到跑几个开源demo的整个过程中,遇到了不少问题,以下是对报错现象及解决方法的记录:Mac上运行iOS项目问题1:npmERR!UnexpectedendofJSONinputwhileparsingnear‘…ire-main-f
Transformers库的模板困境:apply_chat_template的版本变迁与解决方案
Gaffey大杂烩
大模型 windows linux 数据库
目录问题现状低版本(4.43及以下)的简便方式高版本的报错问题原因分析旧版本的实现逻辑新版本的变化解决办法问题现状在使用Transformers库中的tokenizer处理模型输入时,我们经常需要将输入文本格式化为模型可以理解的格式。这个过程在不同版本的Transformers库中有着显著的差异。低版本(4.43及以下)的简便方式在Transformers4.43及更低版本中,当我们需要加载类似C
【解决办法】Jupyter Notebook无法显示pyecharts可视化图表
Xiao_土豆
数据可视化技术 jupyter python 信息可视化
我在JupyterNotebook中使用pyecharts库做可视化图表时,发现无法显示!通过上网查询,方法都基本相似,但其中会遇到一些问题,我详细讲一下我解决这个问题的过程:首先,我按照网络上的步骤,进行资源引用(可参考此链接:资源引用)。#1、获取pyecharts-assets项目gitclonehttps://github.com/pyecharts/pyecharts-assets.gi
Google Protocol Buffers介绍
fengbingchun
Caffe
GoogleProtocolBuffers(简称Protobuf),是Google的一个开源项目,它是一种结构化数据存储格式,是Google公司内部的混合语言数据标准,是一个用来序列化(将对象的状态信息转换为可以存储或传输的形式的过程)结构化数据(即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据)的技术,支持多种语言诸如C++、Java以及Python。可以使用该技术来持久化数据(将
Python 网络爬虫进阶:动态网页爬取与反爬机制应对
Milk夜雨
python python 爬虫
在上一篇文章中,我们学习了如何使用Python构建一个基本的网络爬虫。然而,在实际应用中,许多网站使用动态内容加载或实现反爬机制来阻止未经授权的抓取。因此,本篇文章将深入探讨以下进阶主题:如何处理动态加载的网页内容应对常见的反爬机制爬虫性能优化通过具体实例,我们将探讨更复杂的网络爬虫开发技巧。一、动态网页爬取现代网页通常通过JavaScript加载动态内容。直接使用requests获取的HTML可
跨越界限,触手可及:.NET MAUI引领跨平台移动应用开发新纪元
墨夶
C#学习资料1 .net
在这个移动为先的时代,开发者们面临着一个巨大的挑战:如何以最小的成本和最高的效率构建出适用于多个操作系统的应用程序。传统的做法往往意味着重复劳动和高昂的维护成本。然而,随着.NETMulti-platformAppUI(.NETMAUI)的出现,这一切都发生了改变。作为微软推出的一款革命性框架,.NETMAUI不仅简化了跨平台应用的创建过程,还赋予了开发者前所未有的灵活性与创造力。今天,我们将一起
如何规划一台 Linux 主机,步骤是怎样?思维导图 代码示例(java 架构)
用心去追梦
linux java 架构
规划一台Linux主机,尤其是为了部署Java架构的应用程序,涉及多个步骤。下面我将列出一个基本的规划流程,并提供一些代码示例和建议来帮助你理解如何进行这样的规划。由于思维导图难以通过文本形式表达,我会以结构化的方式描述这个过程,你可以根据这个结构创建自己的思维导图。规划Linux主机(Java应用)1.确定需求应用程序需求:确定Java应用的具体需求,包括预计的用户数量、数据处理量等。硬件资源评
Spring 框架:Java 开发的基石
来恩1003
Java 从入门到精通 java spring 后端
Java学习资料Java学习资料Java学习资料一、引言在Java企业级开发的广阔天地中,Spring框架犹如一颗璀璨的明星,占据着举足轻重的地位。它以其强大的功能、高度的灵活性和卓越的可扩展性,成为众多开发者构建复杂企业应用的首选。Spring框架的出现,极大地简化了Java开发过程,帮助开发者更高效地应对各种业务需求。二、Spring框架概述2.1核心概念Spring是一个轻量级的Java开发
基于centos6.5安装ElasticSearch
小码农叔叔
ElasticSearch linux与容器实战 ElasticSearch ES安装
前面我们讲述了solr的安装搭建过程,今天讲讲ElasticSearch,ElasticSearch是另一款作为分词和搜索的服务器,相比solr,ElasticSearch在做大数据方面更有优势,因为其天然支持分布式,而且其强大的分词技术使得其在众多需要处理大数据量的业务中低位逐渐拔高,像大数据中做日志的提取和分析,使用ElasticSearch很适合,实际工作中,ElasticSearch主要是
C#中的lock关键字详解
watl0
C# 开发语言
在C#中,lock关键字可以用来实现线程同步,确保在多线程环境中只有一个线程可以访问被锁定的资源。在下面的内容中,我将详细解释lock关键字的使用方式以及注意事项。语法lock关键字的语法如下:csharpCopycodelock(object){//需要同步的代码}其中,object参数是一个用于同步的对象,也就是需要锁定的资源。工作原理当一个线程进入到lock块中时,它会尝试获取锁。如果锁已经
Python 虚拟环境搭建
tigercat920
python 开发语言
虚拟环境1.为什么要搭建虚拟环境?在开发过程中,当需要使用python的某些工具包/框架时需要联网安装比如联网安装Django框架django的2.2.5版本sudopipinstalldjango==2.2.5提示:使用如上命令,会将Django安装到/usr/local/lib/python版本号/dist-packages路径下问题:如果在一台电脑上,想开发多个不同的项目,需要用到同一个包的
k8s(kubernetes)常见故障处理总结——详细文档
运维实战课程
docker和k8s学习文档 kubernetes docker 容器
k8s(kubernetes)常见故障处理总结——详细文档本文涵盖了k8s运维过程中大部分常见的故障,提供相应的排查思路,笔记详细,仅供参考本人会经常更新运维相关技术文档,如有兴趣,可以关注我博客,欢迎互动分享k8s其他相关详细资料下载地址:kubeadm初始化高可用k8s1.20.4集群网盘地址:https://url28.ctfile.com/f/37115828-599516373-25f4
设计模式_工厂模式
lestat1911
Design pattern
理解:工厂模式就是专门负责将大量有共同接口的类实例化,而且不必事先知道每次是要实例化哪一个类的模式。它定义一个用于创建对象的接口,由子类决定实例化哪一个类。意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决:主要解决接口选择的问题。何时使用:我们明确地计划不同条件下创建不同实例时。如何解决:让其子类实现工厂接口,返回的也是一个抽象的产品。
LSTM的推导与实现
YZXnuaa
NLP Python库
最近在看CS224d,这里主要介绍LSTM(LongShort-TermMemory)的推导过程以及用Python进行简单的实现。LSTM是一种时间递归神经网络,是RNN的一个变种,非常适合处理和预测时间序列中间隔和延迟非常长的事件。假设我们去试着预测‘IgrewupinFrance...(很长间隔)...IspeakfluentFrench’最后的单词,当前的信息建议下一个此可能是一种语言的名字
Linux(UOS系统:DHCP)
Jackson~Y
网络系统管理 服务器 运维 linux
赛题拓扑:题目:DHCP为OutsideCli客户端网络分配地址,地址池范围:81.6.63.110-81.6.63.190/24。域名解析服务器:按照实际需求配置DNS服务器地址选项。网关:按照实际需求配置网关地址选项。root@ispsrv:~#aptinstallisc-dhcp-server-yroot@ispsrv:~#vim/etc/default/isc-dhcp-serverINT
【Linux】---挂载yum源
Jackson~Y
Linux 运维 服务器 linux
yum源挂载CentOS:yum命令:RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题语法:yum[-y][install|remove|search]软件名称选项:-y,自动确认,无需手动确认安装或卸载过程install:安装remove:卸载search:搜索yum命令需要root权限哦,可以su切换到root,或使用sudo提权yum命令需要联网,不联网情况下需手
基于 WEB 开发的在线考试系统设计与实现
赵谨言
论文 经验分享 毕业设计
标题:基于WEB开发的在线考试系统设计与实现内容:1.摘要基于WEB开发的在线考试系统旨在提供一个便捷、高效、公平的考试环境。本文详细介绍了该系统的设计与实现过程,包括系统架构、功能模块、数据库设计等方面。通过实际应用,证明了该系统具有良好的稳定性和可靠性,能够满足大规模在线考试的需求。关键词:在线考试系统;WEB开发;系统设计;系统实现2.引言2.1.研究背景随着互联网技术的飞速发展,在线考试系
optee gprof
代码改变世界ctw
optee精选 gprof ftrace 调试 optee TEE trustzone
快速链接:.《optee精选全集》付费专栏-[目录]付费专栏-付费课程【购买须知】目录思考什么是opteeGprof?开启opteegprofgprof解析生成的文件思考什么是opteeGprof?如何开启opteegprof?opteegprof和linuxgprof有什么不同?什么是opteeGprof?Gprof是一种性能分析工具,用于收集程序的运行时性能数据,主要用于分析函数的调用关系和运
java 高级工程师面试题集锦,持续更新~
aifans_bert
java学习 java 开发语言 后端
找大厂面试题,看套路!Java面试题及答案及面试解析说到找工作,你认为现在最重要的事情是什么?当然找大厂面试题,看套路!以下面试题就是小编为大家准备的,希望对大家有用!1.面向对象的特征请阅读严宏博士的Java模式或设计模式解释中的桥梁模式)。封装:一般认为封装是将数据和操作数据的方法绑定起来,数据的访问只能通过定义。吐血总结!50道Python面试题集锦(附答案)这些面试题涉及Python基础知
2021 React面试题知识点很全面
尘之微识
react.js 面试
一,什么是虚拟DOM?虚拟DOM(VDOM)它是真实DOM的内存表示,一种编程概念,一种模式。它会和真实的DOM同步,比如通过ReactDOM这种库,这个同步的过程叫做调和(reconcilation)。虚拟DOM更多是一种模式,不是一种特定的技术。二,类组件和函数组件之间有什么区别?类组件(Classcomponents)无论是使用函数或是类来声明一个组件,它决不能修改它自己的props。所有R
【自己动手开发Webpack插件:开启前端构建工具的个性化定制之旅】
Orange301511
大前端 前端 webpack node.js javascript typescript
在前端开发的世界里,Webpack无疑是构建工具中的“明星”。它强大的功能可以帮助我们高效地打包和管理前端资源。然而,有时候默认的Webpack功能可能无法完全满足我们的特定需求,这时候就需要自定义Webpack插件来大展身手啦!今天,我们就来一起探索如何开发自己的Webpack插件。一、什么是Webpack插件?Webpack插件就像是一个神奇的小助手,在Webpack打包的过程中,在特定的时刻
【Leetcode 热题 100】416. 分割等和子集
冠位观测者
Leetcode Top 100 Liked leetcode 算法 数据结构
问题背景给你一个只包含正整数的非空数组numsnumsnums。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。数据约束1≤nums.length≤2001\lenums.length\le2001≤nums.length≤2001≤nums[i]≤1001\lenums[i]\le1001≤nums[i]≤100解题过程要求分成两个子集且和相等,其实就是找到一个总和为sum/
【Spring】Spring概述
边城仔
Spring spring java
目录前言一、Spring简介二、Spring八大模块三、Spring特点总结前言在现代软件开发中,选择合适的框架和技术栈对于项目的成功至关重要。Spring框架作为Java生态系统中最受欢迎的框架之一,因其灵活性、模块化设计以及对多种编程范式的支持而被广泛采用。无论是构建小型应用还是大型企业级系统,Spring都能提供强大的功能和工具来简化开发过程,提高代码质量和可维护性。本文将介绍Spring框
react-native网络调试工具Reactotron保姆级教程
Orange301511
前端 react native
在ReactNative开发过程中,调试和性能优化是至关重要的环节。今天,就来给大家分享一个非常强大的工具——Reactotron,它就像是一个贴心的助手,能帮助我们更轻松地追踪问题、优化性能。下面就是一份保姆级教程哦!一、Reactotron是什么?Reactotron是一个强大的React和ReactNative应用程序调试器。它为开发人员提供了一个易于使用的界面,用于监控应用程序的状态、网络
AI智能制造软件有什么用处
雪叶雨林
行业资讯 AI 人工智能 制造
随着信息技术与制造业的深度融合,人工智能(AI)逐渐成为提升制造效率和灵活性的重要工具。AI智能制造软件通过集成数据分析、机器学习和自动化流程,为企业提供了优化生产、降低成本和提高质量的新途径。生产过程优化实时监控与反馈AI智能制造软件能够实时收集生产线上的各类数据,如温度、压力、速度等参数,并通过机器学习算法进行分析处理。一旦检测到异常情况,系统会立即发出警报并提供改进建议,帮助企业快速响应问题
Heritrix网络爬虫与Tomcat服务器部署指南
Rubix-Kai
本文还有配套的精品资源,点击获取简介:Heritrix是一款功能强大的开源网络爬虫工具,由互联网档案馆开发,适用于大规模网页抓取。本文将指导读者如何下载、安装Heritrix,并在Tomcat服务器上进行部署和运行。内容包括Heritrix的基本概念、下载与安装步骤、集成到Eclipse的过程、配置Heritrix、构建与运行、部署到Tomcat以及如何访问Heritrix的Web界面。此外,还包
Window平台Git-Bash的主题配置
SpeculateCat
Coding Note linux cmd git git-bash
通过这篇文章,可以了解到:为什么要使用Git-Bash,以及Git-Bash的优点Git-Bash的外观主题配置Git-Bash的优点在开发的过程中,我们可能需要使用大量的命令行工具,或者远程连接到服务器进行操作。然而,由于Window自带的CMD和PowerShell都不太好用,而且在Window下的命令又与Linux和MacOS的命令不太一样,如果需要经常跨平台操作,学习Window的命令行命
Ubuntu22.04系统下MVS运行海康威视工业相机
boss-dog
海康威视工业相机 ubuntu MVS 海康威视相机
之前的开发环境是Ubuntu16.04,最近因项目需求换到了Ubuntu22.04系统,安装了ROS2-humble,重新记录下开发过程。Ubuntu16.04系统可参考:VMware虚拟机中Ubuntu16.04系统下通过MVS运行海康威视工业相机Linux环境中对海康威视工业相机SDK进行二次开发(QT+CMake+Opencv+海康SDK)1.官网安装包下载https://www.hikro
Linux下BIND安装与配置详解:正向解析、反向解析、主从域名服务器的搭建
shyuu_
服务器 运维 linux 云计算 网络
文章目录案例:BIND安装与配置详解一、安装BIND软件包二、配置BIND主服务器(正向解析)三、配置反向解析四、配置主从DNS服务器及自动同步案例:BIND安装与配置详解一、安装BIND软件包安装BIND软件包通过网络源或挂载的光盘安装BIND:yuminstallbind-y或者通过RPM包安装,前提是挂载系统盘ISO镜像:rpm-ivhbind-x.x.x-x.el7.x86_64.rpm查
安装CentOS时的分区方法
shyuu_
centos linux 运维
【系列】真机安装CentOSStream8问题第一步解决安装过程报错第二步分区(❗︎本节内容❗︎)第三步配置软件源第四步安装显卡驱动第五步挂载U盘第六步解决没有1920x1080分辨率的问题文章目录【系列】真机安装CentOSStream8问题一、分区描述1.1分区建议1.2手动分区步骤1.3分区示例二、其余硬盘总结一、分区描述在CentOS安装的过程中需要分区,尤其是在生产环境或者真实机器安装,
Java实现的基于模板的网页结构化信息精准抽取组件:HtmlExtractor
yangshangchuan
信息抽取 HtmlExtractor 精准抽取 信息采集
HtmlExtractor是一个Java实现的基于模板的网页结构化信息精准抽取组件,本身并不包含爬虫功能,但可被爬虫或其他程序调用以便更精准地对网页结构化信息进行抽取。
HtmlExtractor是为大规模分布式环境设计的,采用主从架构,主节点负责维护抽取规则,从节点向主节点请求抽取规则,当抽取规则发生变化,主节点主动通知从节点,从而能实现抽取规则变化之后的实时动态生效。
如
java编程思想 -- 多态
百合不是茶
java 多态详解
一: 向上转型和向下转型
面向对象中的转型只会发生在有继承关系的子类和父类中(接口的实现也包括在这里)。父类:人 子类:男人向上转型: Person p = new Man() ; //向上转型不需要强制类型转化向下转型: Man man =
[自动数据处理]稳扎稳打,逐步形成自有ADP系统体系
comsci
dp
对于国内的IT行业来讲,虽然我们已经有了"两弹一星",在局部领域形成了自己独有的技术特征,并初步摆脱了国外的控制...但是前面的路还很长....
首先是我们的自动数据处理系统还无法处理很多高级工程...中等规模的拓扑分析系统也没有完成,更加复杂的
storm 自定义 日志文件
商人shang
storm cluster logback
Storm中的日志级级别默认为INFO,并且,日志文件是根据worker号来进行区分的,这样,同一个log文件中的信息不一定是一个业务的,这样就会有以下两个需求出现:
1. 想要进行一些调试信息的输出
2. 调试信息或者业务日志信息想要输出到一些固定的文件中
不要怕,不要烦恼,其实Storm已经提供了这样的支持,可以通过自定义logback 下的 cluster.xml 来输
Extjs3 SpringMVC使用 @RequestBody 标签问题记录
21jhf
springMVC使用 @RequestBody(required = false) UserVO userInfo
传递json对象数据,往往会出现http 415,400,500等错误,总结一下需要使用ajax提交json数据才行,ajax提交使用proxy,参数为jsonData,不能为params;另外,需要设置Content-type属性为json,代码如下:
(由于使用了父类aaa
一些排错方法
文强chu
方法
1、java.lang.IllegalStateException: Class invariant violation
at org.apache.log4j.LogManager.getLoggerRepository(LogManager.java:199)at org.apache.log4j.LogManager.getLogger(LogManager.java:228)
at o
Swing中文件恢复我觉得很难
小桔子
swing
我那个草了!老大怎么回事,怎么做项目评估的?只会说相信你可以做的,试一下,有的是时间!
用java开发一个图文处理工具,类似word,任意位置插入、拖动、删除图片以及文本等。文本框、流程图等,数据保存数据库,其余可保存pdf格式。ok,姐姐千辛万苦,
php 文件操作
aichenglong
PHP 读取文件 写入文件
1 写入文件
@$fp=fopen("$DOCUMENT_ROOT/order.txt", "ab");
if(!$fp){
echo "open file error" ;
exit;
}
$outputstring="date:"." \t tire:".$tire."
MySQL的btree索引和hash索引的区别
AILIKES
数据结构 mysql 算法
Hash 索引结构的特殊性,其 检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。
可能很多人又有疑问了,既然 Hash 索引的效率要比 B-Tree 高很多,为什么大家不都用 Hash 索引而还要使用 B-Tree 索引呢
JAVA的抽象--- 接口 --实现
百合不是茶
抽象 接口 实现接口
//抽象 类 ,方法
//定义一个公共抽象的类 ,并在类中定义一个抽象的方法体
抽象的定义使用abstract
abstract class A 定义一个抽象类 例如:
//定义一个基类
public abstract class A{
//抽象类不能用来实例化,只能用来继承
//
JS变量作用域实例
bijian1013
作用域
<script>
var scope='hello';
function a(){
console.log(scope); //undefined
var scope='world';
console.log(scope); //world
console.log(b);
TDD实践(二)
bijian1013
java TDD
实践题目:分解质因数
Step1:
单元测试:
package com.bijian.study.factor.test;
import java.util.Arrays;
import junit.framework.Assert;
import org.junit.Before;
import org.junit.Test;
import com.bijian.
[MongoDB学习笔记一]MongoDB主从复制
bit1129
mongodb
MongoDB称为分布式数据库,主要原因是1.基于副本集的数据备份, 2.基于切片的数据扩容。副本集解决数据的读写性能问题,切片解决了MongoDB的数据扩容问题。
事实上,MongoDB提供了主从复制和副本复制两种备份方式,在MongoDB的主从复制和副本复制集群环境中,只有一台作为主服务器,另外一台或者多台服务器作为从服务器。 本文介绍MongoDB的主从复制模式,需要指明
【HBase五】Java API操作HBase
bit1129
hbase
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.ha
python调用zabbix api接口实时展示数据
ronin47
zabbix api接口来进行展示。经过思考之后,计划获取如下内容: 1、 获得认证密钥 2、 获取zabbix所有的主机组 3、 获取单个组下的所有主机 4、 获取某个主机下的所有监控项  
jsp取得绝对路径
byalias
绝对路径
在JavaWeb开发中,常使用绝对路径的方式来引入JavaScript和CSS文件,这样可以避免因为目录变动导致引入文件找不到的情况,常用的做法如下:
一、使用${pageContext.request.contextPath}
代码” ${pageContext.request.contextPath}”的作用是取出部署的应用程序名,这样不管如何部署,所用路径都是正确的。
Java定时任务调度:用ExecutorService取代Timer
bylijinnan
java
《Java并发编程实战》一书提到的用ExecutorService取代Java Timer有几个理由,我认为其中最重要的理由是:
如果TimerTask抛出未检查的异常,Timer将会产生无法预料的行为。Timer线程并不捕获异常,所以 TimerTask抛出的未检查的异常会终止timer线程。这种情况下,Timer也不会再重新恢复线程的执行了;它错误的认为整个Timer都被取消了。此时,已经被
SQL 优化原则
chicony
sql
一、问题的提出
在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一。系统优化中一个很重要的方面就是SQL语句的优化。对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百倍,可见对于一个系统
java 线程弹球小游戏
CrazyMizzz
java 游戏
最近java学到线程,于是做了一个线程弹球的小游戏,不过还没完善
这里是提纲
1.线程弹球游戏实现
1.实现界面需要使用哪些API类
JFrame
JPanel
JButton
FlowLayout
Graphics2D
Thread
Color
ActionListener
ActionEvent
MouseListener
Mouse
hadoop jps出现process information unavailable提示解决办法
daizj
hadoop jps
hadoop jps出现process information unavailable提示解决办法
jps时出现如下信息:
3019 -- process information unavailable3053 -- process information unavailable2985 -- process information unavailable2917 --
PHP图片水印缩放类实现
dcj3sjt126com
PHP
<?php
class Image{
private $path;
function __construct($path='./'){
$this->path=rtrim($path,'/').'/';
}
//水印函数,参数:背景图,水印图,位置,前缀,TMD透明度
public function water($b,$l,$pos
IOS控件学习:UILabel常用属性与用法
dcj3sjt126com
ios UILabel
参考网站:
http://shijue.me/show_text/521c396a8ddf876566000007
http://www.tuicool.com/articles/zquENb
http://blog.csdn.net/a451493485/article/details/9454695
http://wiki.eoe.cn/page/iOS_pptl_artile_281
完全手动建立maven骨架
eksliang
java eclipse Web
建一个 JAVA 项目 :
mvn archetype:create
-DgroupId=com.demo
-DartifactId=App
[-Dversion=0.0.1-SNAPSHOT]
[-Dpackaging=jar]
建一个 web 项目 :
mvn archetype:create
-DgroupId=com.demo
-DartifactId=web-a
配置清单
gengzg
配置
1、修改grub启动的内核版本
vi /boot/grub/grub.conf
将default 0改为1
拷贝mt7601Usta.ko到/lib文件夹
拷贝RT2870STA.dat到 /etc/Wireless/RT2870STA/文件夹
拷贝wifiscan到bin文件夹,chmod 775 /bin/wifiscan
拷贝wifiget.sh到bin文件夹,chm
Windows端口被占用处理方法
huqiji
windows
以下文章主要以80端口号为例,如果想知道其他的端口号也可以使用该方法..........................1、在windows下如何查看80端口占用情况?是被哪个进程占用?如何终止等. 这里主要是用到windows下的DOS工具,点击"开始"--"运行",输入&
开源ckplayer 网页播放器, 跨平台(html5, mobile),flv, f4v, mp4, rtmp协议. webm, ogg, m3u8 !
天梯梦
mobile
CKplayer,其全称为超酷flv播放器,它是一款用于网页上播放视频的软件,支持的格式有:http协议上的flv,f4v,mp4格式,同时支持rtmp视频流格 式播放,此播放器的特点在于用户可以自己定义播放器的风格,诸如播放/暂停按钮,静音按钮,全屏按钮都是以外部图片接口形式调用,用户根据自己的需要制作 出播放器风格所需要使用的各个按钮图片然后替换掉原始风格里相应的图片就可以制作出自己的风格了,
简单工厂设计模式
hm4123660
java 工厂设计模式 简单工厂模式
简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式。是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。
maven笔记
zhb8015
maven
跳过测试阶段:
mvn package -DskipTests
临时性跳过测试代码的编译:
mvn package -Dmaven.test.skip=true
maven.test.skip同时控制maven-compiler-plugin和maven-surefire-plugin两个插件的行为,即跳过编译,又跳过测试。
指定测试类
mvn test
非mapreduce生成Hfile,然后导入hbase当中
Stark_Summer
map hbase reduce Hfile path实例
最近一个群友的boss让研究hbase,让hbase的入库速度达到5w+/s,这可愁死了,4台个人电脑组成的集群,多线程入库调了好久,速度也才1w左右,都没有达到理想的那种速度,然后就想到了这种方式,但是网上多是用mapreduce来实现入库,而现在的需求是实时入库,不生成文件了,所以就只能自己用代码实现了,但是网上查了很多资料都没有查到,最后在一个网友的指引下,看了源码,最后找到了生成Hfile
jsp web tomcat 编码问题
王新春
tomcat jsp pageEncode
今天配置jsp项目在tomcat上,windows上正常,而linux上显示乱码,最后定位原因为tomcat 的server.xml 文件的配置,添加 URIEncoding 属性:
<Connector port="8080" protocol="HTTP/1.1"
connectionTi