正则表达式在旅游突发事件信息抽取中的应用

2016-01-12 07:46熊志斌朱剑锋尹成国
软件 2015年11期

熊志斌++朱剑锋++尹成国

摘要:针对HTML语言的标记符号的语义特点,提出了正则表达式抽取网页信息的方法,并将该方法应用于抽取网页中的旅游突发事件信息。该方法不需要构建DOM树,利用正则表达式的匹配替换功能去掉网页源码中与正文无关的内容生成原始文档,根据原始文档中的正文内容密集出现的特点,寻找正文的起点和终点,从而提取正文。抽取旅游突发事件信息的试验结果表明,正则表达式能高效地抽取目标信息。

关键词:中文信息处理;信息抽取;正则表达式;旅游突发事件

中图分类号:TP181

文献标识码:A

DOI:10.3969/j.issn.1003-6970.2015.11.005

0 引言

随着我国经济的发展,旅游行业出现前所未有的发展势头,由于各种原因,旅游突发事件时有发生。事件一旦发生就会在互联网上迅速传播,真实消息和虚假消息在网络上混杂蔓延。快速、准确地从海量的网络信息从抽取旅游突发事件信息是旅游突发事件应急处理的关键所在,有助于旅游管理部门把握事态的发展趋势。旅游突发事件信息会出现旅游事故相关的特征词汇,如“踩踏”、“溺水”、“事故”、“伤亡”。除了这些的事故相关的特征词汇外,还有与事件主题相关的词汇:一是在文体中会产生事件主题专有的新词、网络词汇,如“天价虾”、“酒托”、“零团费”、“影子团友”、“刀客”;二是事件所涉及的时间、地点、人物、组织机构等命名实体,如“善德活海鲜烧烤”、“大研古城”、“朝阳旅行社”。这些新词、网络词汇、命名实体在中文分词处理阶段往往属于未登录词汇的范围,难以切分出来,但是这些词汇具有很强的关联性和稳定性,在判断网页信息是否属于旅游突发事件的过程中有特殊的作用。在从网页中抽取旅游突发事件信息的过程中,为了对新词、网络词汇、命名实体等未登录词进行有效的利用,本文提出利用正则表达式从网页抽取旅游突发事件的方法。

1 网页信息抽取

信息抽取(Information Extraction)是指从一段文本中抽取指定的一类信息(例如事件、事实)并将其(形成结构化的数据)填入一个数据库中供用户查询和使用的过程。以因特网作为信息源,从Web网页中抽取信息的过程称为Web信息抽取。Web信息抽取的目标是从Web页面中抽取用户感兴趣的信息并过滤掉不相关的信息,将分散在半结构化Web页面中的信息提取出来,并以结构化、语义更为清晰的模式表示。在Web网页源码中含有大量与正文内容无关的代码,如网页文档类型,网页注释、javascript代码、CSS代码、导航超链,这些无用的信息被称为网页噪声。网页信息抽取的核心问题是从网页源码中剔除网页噪声,保留网页正文内容。随着数据挖掘的深入应用,网页信息抽取技术也在快速发展,目前已经出现了多种网页信息抽取方法,各种方法的技术原理也各不相同。根据各种信息抽取工具所采用的原理,现有的工具可分为5类:基于自然语言处理(Natural LanguageProcessing,NLP)方式的信息抽取、包装器(Wrapper)归纳方式的信息抽取、基于本体(ontology)方式的信息抽取、基于HTML结构的信息抽取和基于Web查询的信息抽取。由于Web网页基本上都是采用HTML语言编写的,基于HTML结构的信息抽取成为目前使用最广泛的一种抽取方式。HTML文本属于半结构化的文本,经过处理就能转化成一个结构化的DOM树(DocumentObject Model),在DOM树的基础上再结合其它技术衍生出了很多种信息抽取方法。李效东等把DOM树中的路径作为信息提取的“坐标”,并设计了一种归纳学习算法来半自动地生成用于包装器提取信息的提取规则。张昕等提出一种利用视觉特征的页面分割算法,结合DOM树,从网页中提取出正文的方法。HTML是一种标记语言,通过标记符号标记要在浏览器中显示的各部分网页内容,每个HTML标记符号有特定的语义。网页文档类型,网页注释、javascript代码、CSS代码、导航超链这些网页噪声是通过特定的HTML标记符号标记出来的,因此利用正则表达式中的匹配功能可以识别网页噪声,再利用正则表达式的替换功能实现剔除网页噪声,保留网页中有用信息。

2 正则表达式

正则表达式(Regular Expressions)是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。正规表达式最初出现于理论计算机科学的自动控制理论和形式语言理论中,以后其它一些领域尤其是数学上对它进行了扩展研究,数学上使用正则集合的数学符号来描述此模型。目前大多数高级程序设计语言支持正则表达式,例如C++、Java,C#、PHP语言都有内置的正则表达式功能。在程序设计语言中,正则表达式是一种可以用于模式匹配和替换的模板,一个正则表达式就是由普通的字符以及特殊字符组成的字符模式,将某个字符模式与所搜索的字符串进行匹配、替换、提取子串。

正则表达的三种基本功能是:匹配、替换和提取。匹配功能,可以把用特殊字符串表达的匹配模式与数据文件、程序输入或者WEB页面的表单输入等目标对象进行比较,利用机器自动验证数据格式是否规范。替换文本功能,用于在文档中使用匹配模式来标识特定文字,然后将其删除或进行替换。提取功能,用于根据模式匹配,从字符串提取子字符串。正则表达式在高级程序设计语言中通常用来处理一系列复杂字符串的查找、替换和提取等工作,表现出来的性能优良。正则表达式快速匹配文本的特点可以用于信息抽取。

HTML文档本身就是一系列字符组成的字符串,在信息抽取的过程中完全符合正则表达式的功能特点。采用基于正则表达式抽取网页信息,首先把网页源码作为字符串处理,由用户根据HTML标记符号的语义,编写出一组正则表达式来匹配用户想查找的网页噪声。利用正则表达式的替换功能,将网页噪声替换成空白字符,从而达到网页去噪的目的。

3 基于正则表达式的旅游突发事件信息抽取

利用正则表达式抽取旅游突发事件信息,从网页源码到成功抽取目标信息需要经过四步处理。第一步,从互联网上采集网页,由于互联网上网页数量巨大,通常使用网络爬虫采集网页。第二步,网页清洗,编写正则表达式,利用正则表达式的匹配替换功能剔除网页噪声,生成原始文档。第三步,抽取网页正文,通过合适的算法定位正文部分。第四步,判断是否属于旅游突发事件。经过第四步的判断后,如果属于旅游突发事件,则网页URL、网页标题、网页正文内容存入本地数据库,否则丢弃上述信息。

3.1 网页采集

网络爬虫是一种自动下载网页的程序,采集网页就是利用网络爬虫工具下载网页到本地机器。网络爬虫基本工作原理是从1个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列。通常的网页URL有固定的模式,基本都是以http://开头,匹配URL的正则表达式为:

http://f[\w-]+\.)+[\w-]+(/[\w-./?%&=]*)? (1)

根据正则表达式(1),网络爬虫从网页源码中能准确提取到URL。

在采集特定信息网页时,使用主题爬虫较好,主题爬虫只采集与特定主题相关的网页。与综合性搜索引擎所用的通用爬虫相比,主题爬虫最明显的特点是需要对爬取的网页内容进行主题相似性分析、确定爬行路径,从而大大减少了爬取的网页数量、降低系统开销、提高了网页质量。

3.2 网页清洗

剔除网页噪声的过程也称为网页清洗。通过分析网页源码,网页噪声是由有限的几个HTML标记符号标记的。HTML语言中每个标记符号都有特定的语义,因此,利用正则表达式中匹配功能,通过HTML语言中的标记符号可以找到网页源码中的网页噪声,再利用正则表达式中的替换功能将匹配项替换成空白字符就实现噪声剔除。例如,javascript代码被封闭在标记符号之间,可以用高级语言内置的正则表达式将javascript代码剔除掉。以Java语言为例,调用String类的实例方法replaceAll("(?is).*?","")卖现剔除javascript代码。网页清洗过程中要用到的正则表达式如表1所示,在高级程序设计语言中应用表1中正则表达式时,要启用单行和不区分大小写模式匹配,或在正则表达式中使用内嵌标志(?is)。网页清洗步骤如下:

1.抽取标题。网页标题既可以在标记块抽取,也可以在<body>标记块中<hl>标记块中抽取;<br>2.抽取<body>标记块中的内容。网页正文内容和标题都在网页源码的<body>标记块中,直接抽取<body>标记块中内容,作为余下步骤的输入;<br>3.剔除javascript代码;<br>4.剔除CSS代码;<br>5.剔除超链;<br>6.剔除HTML符号实体,将文本中空白符号和其它特殊符号移除;<br>7.剔除HTML标记符号,清除文本中残余标记符号。<br>3.3 抽取网页正文<br>网页源码经过清洗步骤后,去掉网页噪声,留下的文档我们称为原始文档,从原始文档中准确地抽取正文内容是网页信息抽取的最终目的,这需要合适的算法确定原始文档中正文块的位置。我们从互联网随机抓取了20篇新闻网页,用软件清洗网页后得到原始文档,观察这些原始文档,我们发现,原始文档中不再含HTML标记符号,原始文档中包括网页正文内容和一些无用的信息,无用信息包括大量空白行、孤立的1行文字、每行字数很少的连续两三行的文字快,这些无用信息都是由于剔除HTML标记产生的;在原始文档中同一段落的正文内容基本是一行一行地紧密排在一起的,正文内容不同段落之间存在1行空白。根据直观分析的结果,我们设计了一个定位正文块的简单算法,算法步骤如下:<br>1.计算每行的非空白字符数,转步骤2;<br>2.如果连续2行的文字数大于15,则标记为正文的起始行,转步骤3,否则转步骤1;<br>3.计算剩余行的非空白字符数;<br>4.如果连续3行字数为0或到文件尾,则标记为文本结束行,转步骤5,否则转步骤3;<br>5.根据起始行和结束行,提取起始行和结束行之间的文本内容。<br>3.4 判断旅游突发事件<br>从原始文档抽取到正文内容后,还需判断抽取到正文内容是否属于旅游突发事件。考察互联网上旅游突发事件网页信息,其文体具有一些特征词汇,我们把这些特征词分成三类。第一类属于突发事件主体对象,如:“驴友”,“白驾游”,“游客”,“旅游”,“观光”,“旅行”,“旅行社”,“导游”,“景区”,“景点”。第二类属于突发事件热词,如:,“网友爆料”,“天价”,“酒托”,“零团费”、“影子团友”、“刀客”。第三类体现突发事件过程,如:“报警”,“坠落”,“失联”,“失踪”,“事故”,“死”,“迷路”,“殴打”,“营救”,“被困”,“挤踏”,“踩踏”,“救援”,“幸存”,“溺亡”,“遇难”,“伤”,“失火”,“暴雨”,“迷路”,“摔伤”,“中毒”,“探险”,“劫持”,“地震”,“海啸”,“困住”等。利用这些特征词,我们制定一个简单的判断策略,如果正文内容出现第一类特征词,且正文内容出现过第二类特征词或第三类特征词,就认为正文内容属于旅游突发事件。上述判断策略,利用正则表达式很容易实现。<br>当某个旅游突发事件形成热点,在网上迅速扩散时,就会产生由该事件形成的新词,如“天价虾”,与事件有关的地点、机构单位等命名实体也会成为热门词语,用正则表达式匹配这些旅游突发事件而产生的新词、机构单位等命名实体更加高效地判断网页正文内容是否属于需要提取的目标信息。<br>4 试验结果<br>本文用JAVA语言实现了上述方法,选取了300篇网页源码作为测试数据,其中包含20篇旅游突发事件网页。结果统计过程中,抽取正文内容不完整,或抽取到不属于正文的内容,都统计为错误抽取。试验结果如表2所示:<br>对正文内容抽取错误的网页进行分析,主要有3种情况:<br>1.网页前两行内容太短,被当成噪声忽略掉,内容提取不完整;<br>2.网页嵌套表格,内容提取不完整;<br>3.网页正文后紧跟字符数较多的广告,提取了不该提取的内容。<br>由于我们采集到的旅游突发事件网页数量较少,只有20篇,而且300篇网页中内容属于旅游方面,但不属于旅游突发事件的网页数量也少。因此,在测试数据中旅游突发事件网页存在样本量小,干扰项少的缺点,所以旅游突发事件判断正确率还需要采集规模更大的更复杂的数据集进行测试。<br>5 结束语<br>利用HTML的标记符号的语义特点和正则表达式匹配替换的功能,实现网页清洗,剔除了网页中大量的与正文内容无关的代码,生成原始文档,根据原始文档中正文的文字密集出现的特性,能有效的提取正文内容。该方法与传统基于HTML结构抽取网页信息的方法相比,简单易行,不需要构建DOM树,也能高效地提取网页正文内容。本文所提JLH方法可以应用于提取不同领域的目标信息,其关键点在于根据具体领域特点制定判断策略来判断所提取到正文是否属于目标信息。本文在抽取旅游突发事件信息的过程利用特征词匹配的策略,对于复杂的领域,可以采用机器学习的技术建立判断策略。 <!--endprint--> </div> </div> <div class="newartpage"> [<a href="article.aspx?titleid=ranj20151105">1</a>] <label class="fBold"> 2 </label> <a href="javascript:OpenFavoriteTitle('ranj20151105','正则表达式在旅游突发事件信息抽取中的应用','熊志斌 朱剑锋 尹成国');"> 存入我的阅览室</a> </div> </div> </div> <div class="eiboxright"> <div class="eiboxrighttop"> </div> <div class="eiboxrightbody0"> <div class="eitextbox"> <ul> <li><a target="_blank" href="Mag.aspx?issn=E6E829E6-B4A5-4BE8-BB03-7AB8EFE14167&year=2016&issue=7"> <img src="http://img1.qikan.com/qkimages/ranj/ranj201607-m.jpg" alt="《故事会》" style="filter: alpha(opacity=100);" onmousemove="javascript:f_move(this)" onmouseout="javascript:f_out(this)" width="120px" height="158px" /> </a> <p> <b><a target="_blank" href="Mag.aspx?issn=E6E829E6-B4A5-4BE8-BB03-7AB8EFE14167&year=2016&issue=7" title="软件">《软件》</a></b><br /> 2016年07期 </p> </li> </ul> </div> <div class="eiboxrightbody0dlcase"> <dl onmouseover="this.className='cc0'" onmouseout="this.className='cc1'"> <dt> 基金项目论文</dt> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151101" title="数据流信息从MySQL到HBase的迁移策略的研究"> 数据流信息从MySQL到HBase的迁移策略的研究</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151102" title="基于微博的情感新词发现研究"> 基于微博的情感新词发现研究</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151103" title="互联网+时代泰州智慧城市创新发展探讨"> 互联网+时代泰州智慧城市创新发展探讨</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151104" title="MongoDB数据库下文件型数据存储研究"> MongoDB数据库下文件型数据存储研究</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151105" title="正则表达式在旅游突发事件信息抽取中的应用"> 正则表达式在旅游突发事件信息抽取中的应用</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151106" title="基于微视频的高职翻转课堂教学实证研究"> 基于微视频的高职翻转课堂教学实证研究</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151107" title="职业教育专业教学资源库资源建设研究"> 职业教育专业教学资源库资源建设研究</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151108" title="基于汉诺塔游戏的递归算法解析"> 基于汉诺塔游戏的递归算法解析</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151109" title="云计算在气象检定系统中的应用"> 云计算在气象检定系统中的应用</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151110" title="MongoDB在气象传感器数据处理中的应用"> MongoDB在气象传感器数据处理中的应用</a> </dd> </dl> <dl onmouseover="this.className='cc0'" onmouseout="this.className='cc1'"> <dt> 综述</dt> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151111" title="数据挖掘技术研究与应用"> 数据挖掘技术研究与应用</a> </dd> </dl> <dl onmouseover="this.className='cc0'" onmouseout="this.className='cc1'"> <dt> 设计研究与应用</dt> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151112" title="基于Mahout框架的Hadoop平台作业日志分析平台设计与实现"> 基于Mahout框架的Hadoop平台作业日志分析平台设计与实现</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151113" title="基于重开始共轭思想的改进多项式插值法"> 基于重开始共轭思想的改进多项式插值法</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151114" title="基于模板的网络设备配置系统"> 基于模板的网络设备配置系统</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151115" title="小型自动灭火机器人"> 小型自动灭火机器人</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151116" title="Android移动网络终端的IPv6接入系统设计与实现"> Android移动网络终端的IPv6接入系统设计与实现</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151117" title="基于消息队列模型和数据冗余技术避免电商平台分布式事务的研究"> 基于消息队列模型和数据冗余技术避免电商平台分布式事务的研究</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151118" title="基于Netmap的动态地址分配服务的设计与实现"> 基于Netmap的动态地址分配服务的设计与实现</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151119" title="基于商业银行大数据访问规律的HDFS副本策略优化研究"> 基于商业银行大数据访问规律的HDFS副本策略优化研究</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151120" title="基于移动终端的电子商务商品推荐模型研究"> 基于移动终端的电子商务商品推荐模型研究</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151121" title="面向Windows的CLAT及其接入系统的设计与实现"> 面向Windows的CLAT及其接入系统的设计与实现</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151122" title="基于工作流的应急预案管理系统的设计与实现"> 基于工作流的应急预案管理系统的设计与实现</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151123" title="基于复杂网络的大型软件复杂性度量"> 基于复杂网络的大型软件复杂性度量</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151124" title="基于BP神经网络和SVM的分类方法研究"> 基于BP神经网络和SVM的分类方法研究</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151125" title="基于Nutch的增量网页信息采集系统的设计与实现"> 基于Nutch的增量网页信息采集系统的设计与实现</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151126" title="一种基于智能手机的可穿戴设备安全架构"> 一种基于智能手机的可穿戴设备安全架构</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151127" title="基于win7多点触控的标绘技术设计与实现"> 基于win7多点触控的标绘技术设计与实现</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151128" title="非结构化文本的自动分类检索平台的研究与实现"> 非结构化文本的自动分类检索平台的研究与实现</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151129" title="嵌入式环境下栅格数据访问引擎的设计"> 嵌入式环境下栅格数据访问引擎的设计</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151130" title="基于网络问答社区的专家排名算法分析"> 基于网络问答社区的专家排名算法分析</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151131" title="军事协同标绘系统的图标身份辨别设计与实现"> 军事协同标绘系统的图标身份辨别设计与实现</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=ranj20151132" title="基于FLEX平台的课外辅导系统分析与设计"> 基于FLEX平台的课外辅导系统分析与设计</a> </dd> </dl> </div> </div> </div> </div> </div> <div id="menuFooterDiv" class="headnav0"></div> <script type="text/javascript"> jQuery("#menuHeaderDiv").html(html); jQuery(function () { jQuery("#morelayer").hover(function () { jQuery("#divmorelayer").fadeIn(300); }) jQuery("#divmorelayer").hover(function () { jQuery("#divmorelayer").fadeIn(300); }, function () { jQuery("#divmorelayer").fadeOut(300); }) }) jQuery("#menuFooterDiv").html(htmlFooter); jQuery(function () { jQuery("#morelayerFooter").hover(function () { jQuery("#divmorelayerFooter").fadeIn(300); }) jQuery("#divmorelayerFooter").hover(function () { jQuery("#divmorelayerFooter").fadeIn(300); }, function () { jQuery("#divmorelayerFooter").fadeOut(300); }) }) if (jQuery('.morelayer_body > a').length == 0) { //页眉/页脚导航“更多”下没有内容,将“更多”隐藏 jQuery('.threeunit').hide(); } </script> <div class="rearinfo"> 公司地址: 北京市西城区德外大街83号德胜国际中心B-11<br>客服热线:400-656-5456  客服专线:010-56265043  电子邮箱:<a href="mailto:longyuankf@126.com">longyuankf@126.com</a><br>电信与信息服务业务经营许可证:<a href="http://www.miibeian.gov.cn" target="_blank">京icp证060024号</a><br>Dragonsource.com Inc. All Rights Reserved </div><div class="icp"> <a href="http://www.hd315.gov.cn/beian/view.asp?bianhao=010202006041400015" target="_blank"> <img src="/Content/Images/icp.jpg" alt="icp" /></a></div> </div> </div> </form> <script type="text/javascript" src="/Content/Script/jquery.cookie.js"></script> <script type="text/javascript"> jQuery(document.body).ready(function () { if (jQuery.cookie('enablecookie') == null) { jQuery.cookie('enablecookie', '1'); var ec = jQuery.cookie('enablecookie'); if (ec == null) { location.href = "http://" + domain + "/content/error.aspx?error=nocookie"; } } }); </script> <script type="text/javascript"> var showad = true; var Toppx = jQuery(".headbox").height() + jQuery(".banner").height() + 10; //60; var AdDivW = 100; var AdDivH = 252; var PageWidth = 800; var MinScreenW = 1024; function scall1() { if (!showad) { return; } if (window.screen.width < MinScreenW) { showad = false; // document.getElementById("ctl00_LeftDiv").style.display = "none"; // document.getElementById("ctl00_RightDiv").style.display = "none"; jQuery("#ctl00_LeftDiv").hide(); jQuery("#ctl00_RightDiv").hide(); return; } var Borderpx = 30; //((window.screen.width - PageWidth) / 2 - AdDivW) / 2; // document.getElementById('ctl00_LeftDiv').style.display = ""; // document.getElementById('ctl00_LeftDiv').style.top = document.documentElement.scrollTop + Toppx; // document.getElementById('ctl00_LeftDiv').style.left = document.documentElement.scrollLeft + Borderpx; // document.getElementById('ctl00_RightDiv').style.display = ""; // document.getElementById('ctl00_RightDiv').style.top = document.documentElement.scrollTop + Toppx; // document.getElementById('ctl00_RightDiv').style.left = document.documentElement.scrollLeft + document.body.clientWidth - document.getElementById('ctl00_RightDiv').offsetWidth - Borderpx; jQuery("#ctl00_LeftDiv").show(); var Scrolltoppx = document.documentElement.scrollTop; var Scrollleftpx = document.documentElement.scrollLeft; jQuery("#ctl00_LeftDiv").css("top", Scrolltoppx + Toppx); jQuery("#ctl00_LeftDiv").css("left", Scrollleftpx + Borderpx); jQuery("#ctl00_RightDiv").show(); jQuery("#ctl00_RightDiv").css("top", Scrolltoppx + Toppx); jQuery("#ctl00_RightDiv").css("left", Scrollleftpx + document.body.clientWidth - document.getElementById('ctl00_RightDiv').offsetWidth - Borderpx); } function hidead1() { showad = false; document.getElementById('ctl00_LeftDiv').style.display = "none"; document.getElementById('ctl00_RightDiv').style.display = "none"; } function addLoadEvent1(func) { var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = func; } else { window.onload = function () { oldonload(); func(); } } } window.onscroll = scall1; window.onresize = scall1; addLoadEvent1(scall1); </script> <script type="text/javascript"> var piao=false; var xPos = 300; var yPos = 200; var step = 1; var delay = 30; var height = 0; var Hoffset = 0; var Woffset = 0; var yon = 0; var xon = 0; var pause = true; var interval; var img1 = document.getElementById("ctl00_PiaoDiv"); img1.style.display = 'block'; img1.style.top = yPos; function changePos() { var Scrolltoppx = document.documentElement.scrollTop; var Scrollleftpx = document.documentElement.scrollLeft; width = document.body.clientWidth - 200; height = document.documentElement.clientHeight; Hoffset = img1.offsetHeight; Woffset = img1.offsetWidth; jQuery(img1).css("left", xPos + document.body.scrollLeft); jQuery(img1).css("top", Scrolltoppx + yPos + document.body.scrollTop); if (yon) { yPos = yPos + step; } else { yPos = yPos - step; } if (yPos < 0) { yon = 1; yPos = 0; } if (yPos >= (height - Hoffset)) { yon = 0; yPos = (height - Hoffset); } if (xon) { xPos = xPos + step; } else { xPos = xPos - step; } if (xPos < 0) { xon = 1; xPos = 0; } if (xPos >= (width - Woffset)) { xon = 0; xPos = (width - Woffset); } } function start() { img1.visibility = "visible"; interval = setInterval('changePos()', delay); } function pause_resume() { if (pause) { clearInterval(interval); pause = false; } else { interval = setInterval('changePos()', delay); pause = true; } } if(piao) { start(); } </script> <fjtignoreurl> <script type="text/javascript"> //为了处理https协议在繁简转换的时候会默认吧链接转换成带有端口号444的链接的问题。 jQuery(function () { $("a[href*=':444']").each(function () { var link = $(this).attr('href'); link = link.replace(/^https://big5.qikan.com:444/i, "http://big5.qikan.com") $(this).attr('href', link); }); });</script></fjtignoreurl> <script type="text/javascript"> jQuery(function () { var link = "https://big5.qikan.com"; }); </script><fjtignoreurl><script type="text/javascript">var _userid = '';var _siteid =19;var _istoken = 1;var _model = 'Model03';</script><script src="http://tj.qikan.com/urchin.js" type="text/javascript"> </script><script type="text/javascript">WebPageSpeed =281; UrchinTrack();</script></fjtignoreurl></body></html>