基于行块分布函数的网页正文抽取算法代码实现

     最近在在做一个与资讯相关的APP,资讯是通过爬取获得,但是获取只有简单的信息,正文没有获取。所以在显示的时候很麻烦,一个<a>标签链到到别人的网页,满屏的广告

,还有各种弹窗,虽然页面确实做得很漂亮,但是不得不放弃这种简单的方式了,所以接下来自己动手了。

    首先我们做的是基于HTML5的APP,所以基本上就是和网页打交道。但是接下来问题就来了,当用户点击某一条资讯时,该由谁来解析这个网页最后呈现给用户看,手机端还是服务器端?其实都有问题,最简单的肯定是通过我们的服务器来解析后然后在封装成html给用户呈现,但是这样必定会增加服务器的压力,而且还有被封的可能性。在手机端,要取得html只有两种可能,js或者jsp,但是前者是不能跨域访问的,后者其实也是在服务器端运行的。最终解决方法,手机端用一个原生态的界面来呈现,不经可以解析链接,而且效果应该也比网页好,但是这和我们初心的不一致,那就是除了主界面其他都是网页,目前暂定这种方式。那么接下来问题又来了,改用什么方式来获取正文呢?有很多种算法,提供一篇算法介绍的博客:点击打开链接

     我使用的是基于行块分布函数的网页正文抽取算法,因为这个算法比较简单,准确率不是很高,基本思想:

        1.首先将网页中的html标签全部去掉,再去掉空白行和空白部分,得到文本

     

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
基于2的快速傅里叶变换(FFT)是一种有效的信号处理算法,可以在较短的时间内计算出信号的频域表示。下面是使用MATLAB实现基2时间抽取FFT算法的步骤: 1. 首先,我们需要定义一个测试信号,可以是一个具有周期性特征的离散信号。假设我们有一个长度为N的信号x,其中N是2的幂。 2. 接下来,我们使用以下代码实现基2时间抽取FFT算法: ``` function X = fft_time_domain(x) N = length(x); if N == 1 X = x; else x_even = fft_time_domain(x(1:2:N)); x_odd = fft_time_domain(x(2:2:N)); W = exp(-2i*pi*(0:(N/2-1))/N); X = [x_even + W.*x_odd, x_even - W.*x_odd]; end end ``` 在这段代码中,我们首先检查信号长度N是否为1,如果是,则直接返回该信号。否则,我们将信号分成两部分,即偶数索引和奇数索引。然后分别对这两部分信号递归地进行FFT计算。最后,将计算得到的结果合并在一起,得到最终的频域表示X。 3. 最后,我们可以使用以下代码来测试我们实现的FFT算法: ``` x = [1, 2, 3, 4, 5, 6, 7, 8]; X = fft_time_domain(x); disp(X); ``` 这段代码中,我们定义了一个长度为8的测试信号x,并将其作为输入传递给我们实现的FFT函数fft_time_domain。然后,我们打印出计算得到的频域表示X。 通过以上步骤,我们就可以使用MATLAB实现基2时间抽取FFT算法。这种算法可以有效地计算信号的频域表示,并在信号处理领域得到广泛应用。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值