优草派  >   Python

python怎么抓取正文?这篇文章值得一看

陈立鑫            来源:优草派

很多小伙伴想知道python如何抓取正文,那么今天小编就通过这篇文章来教会大家python抓取正文的方法,感兴趣的小伙伴一定要耐心阅读完这篇文章。

python怎么抓取正文?这篇文章值得一看

python抓取正文的方法如下:

第一步,首先清除网页中CSS,JavaScript,注释,Meta,Ins这些标签里面的内容,清除空白行。

第二步,我们再计算每一个行的经过处理的数值(1)

第三步,计算上面得出的每行文本数的**大正子串的开始结束位置 

其中第二步需要说明一下:

对于每一行,我们需要计算一个数值,这个数值的计算如下:

一个图片标签img,相当于出现长度为50字符的文本 (给予的权重),x1,

一个视频标签embed,相当于出现长度为1000字符的文本, x2

一行内所有链接的标签 a 的文本长度 x3 ,其他标签的文本长度 x4。每行的数值 = 50 * x1其出现次数 + 1000 * x2其出现次数 + x4 – 8

实现代码:

#coding:utf-8
import re
def remove_js_css (content):
    """ remove the the javascript and the stylesheet and the comment content ( and  ) """
    r = re.compile(r''' glo_max) :
            glo_max = cur_max
            right = index
        elif (cur_max < 0):
            cur_max = 0
    for i in range(right, -1, -1):
        glo_max -= values[i]
        if abs(glo_max < 0.00001):
            left = i
            break
    return left,right+1
def method_1 (content, k=1):
    if not content:
        return None,None,None,None
    tmp = content.split('
')
    group_value = []
    for i in range(0,len(tmp),k):
        group = '
'.join(tmp[i:i+k])
        group = remove_image (group)
        group = remove_video (group)
        text_a,text_b= remove_any_tag_but_a (group)
        temp = (text_b - text_a) - 8 
        group_value.append (temp)
    left,right = sum_max (group_value)
    return left,right, len('
'.join(tmp[:left])), len ('
'.join(tmp[:right]))
def extract (content):
    content = remove_empty_line(remove_js_css(content))
    left,right,x,y = method_1 (content)
    return '
'.join(content.split('
')[left:right])

以上就是小编给大家带来的在python抓取正文的相关知识点了,希望大家通过阅读小编的文章之后能够有所收获!如果大家觉得小编的文章不错的话,可以多多分享给有需要的人。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。
TOP 10
  • 周排行
  • 月排行