很多小伙伴想知道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抓取正文的相关知识点了,希望大家通过阅读小编的文章之后能够有所收获!如果大家觉得小编的文章不错的话,可以多多分享给有需要的人。