火车采集器插件从摘要中自动提取标题

- 作者:zhanhy ——来源:原创 ——

火车采集器作为一款爬虫软件,功能比较强大很多功能都可以完成,一些软件处理不了的问题也可以使用插件来处理。火车采集器可以支持的插件有C#,Python,PHP,会用那种语言就可以自己开发适合自己的插件了。下面介绍一个用python做的插件,实现从摘要中自动提取标题,希望可以给你带来帮助。

import sys,importlib
from urllib import parse
import json
import re

if len(sys.argv)!= 5:
    print(len(sys.argv))
    print("命令行参数长度不为5")
    sys.exit()
else:
    LabelCookie = parse.unquote(sys.argv[1])
    LabelUrl = parse.unquote(sys.argv[2])
    #PageType为List,Content,Pages分别代表列表页,内容页,多页http请求处理,Save代表内容处理
    PageType=sys.argv[3]
    SerializerStr = parse.unquote(sys.argv[4])
    if (SerializerStr[0:2] != '''{"'''):
        file_object = open(SerializerStr)
        try:
            SerializerStr = file_object.read()
            SerializerStr = parse.unquote(SerializerStr)
        finally:
            file_object.close()
    LabelArray = json.loads(SerializerStr)

#以下是用户编写代码区域
    if(PageType=="Save"):
        if(LabelArray['标题']):
            LabelArray['标题']=LabelArray['标题']
        if(LabelArray['品牌词']):
            LabelArray['品牌词']=LabelArray['品牌词']
        if(LabelArray['匹配词']):
            LabelArray['匹配词']=LabelArray['匹配词']
        if(LabelArray['摘要']):
            line = LabelArray['摘要']
            begin_word_list=['致力','培养','致力','针对','打造','专注','致力','一家','知名','一家','培养','启发','打破','为','英语','专为','专业','致力','专注','专注','专业','专职','为','专注','致力','挖掘','专注','个性化','专注','少儿教育','专业','专为','专为','专为','专为','一线','专业','为','专注','从事','给','在线','针对','开启','针对','专注','一家','从事','综合性','一家','提供','让','线上','成人','从事','一家','致力','新型','为','以','提高','是','专注','集','中国','针对','培养','为','致力','致力','致力','专注','为','致力','一家','致力','利用','为','为','K12','帮助','致力','专注','致于','优质','国内','是一种','专门','为孩子','致力','致力','致力','采用','专注','为','一所','以','培养','让','以','为','集','帮助','致力','一家','培养','通过','致力','专注','培养','始终','专注','采用','专门','提供','以','专注','专注','全球','为','为','针对','为','以','新型','值得','提供','优质','致力','打造','帮助','拥有','为','引进','拥用','专业从事','一对一','严格','从事','致力','为','打造专业','由国内知名','集','根据','为','致力','专门制定']
            end_word_list=['能力','人才','教育','产品','课程','教育','公司','教育集团','品牌','公司','基础','教育理念','现状','平台','机构','产品','机构','人才','培训','方案','公司','工作','学习环境','探索','服务','潜能','辅导','品牌','少儿学习中心','开发','教育方式','服务品牌','课程','创造力','教材','品牌','品牌','教育产品','教育品牌','课程','服务','品牌','课程','想象力','学校','研究','企业','机构','机构','品牌','服务','英语','平台','品牌','品牌','机构','推方','学校','课程','教学','能力','品牌','平台','机构','公司','品牌','能力','学习','研究','教材','机构','机构','少儿英语','竟争力','平台','学习','一面','教育','服务','平台','说话','中心','发展','思维','平台','品牌','教育','教学','环境','习惯','培养','辅导','社会','运营商','体验馆','学校','方法','领导者','教育资源','基础','机会','公司','团队','课程','外教','习惯','生长','方案','培育','兴趣','小班讲课','服务','方法','培训班','需求','品牌','模式','素质','机构','潜能','方案','体系','培育','能力','机构','品牌','教学','氛围','品牌','品牌','能力','加盟体系','计划','教学成果','队伍','教育机构','教学','教学水平','研究工作','指导','教学指导','品牌','训练方法','品牌','机构','训练','教学环境','教学方法']
            i=0
            title_list=[]
            re_begin_word_list=[]
            re_end_word_list=[]
            for begin_word in begin_word_list:
                pattern=re.compile(r''+begin_word+'('+'('+'?'+'!'+end_word_list[i]+'|'+begin_word+')'+'.'+')'+'*'+end_word_list[i], re.M|re.I)
                searchObj = pattern.search(line)
                if searchObj:
                    title_one=''
                    title=''
                    title=LabelArray['品牌词']+'—'+searchObj.group()
                    title_one=re.sub(r',|。|“|"|”|,|\.|、|,',"",title)
                    title_list.append(title_one)
                    re_begin_word_list.append(begin_word)
                    re_end_word_list.append(end_word_list[i])
                i=i+1
            if len(title_list)==0:
                LabelArray['标题']='【待修改】'+LabelArray['品牌词']
            else:
                LabelArray['标题']=min(title_list, key=len)
                LabelArray['匹配词']='开始词:'+re_begin_word_list[title_list.index(LabelArray['标题'])]+'##结束词:'+re_end_word_list[title_list.index(LabelArray['标题'])]
                if len(LabelArray['标题'])>=35:
                    LabelArray['标题']='【截取】'+LabelArray['标题'][:35]
    else:
        LabelArray['Html']='当前页面的网址为:'+ LabelUrl +"\r\n页面类型为:" + PageType + "\r\nCookies数据为:"+LabelCookie+"\r\n接收到的数据是:" + LabelArray['Html']
        

#以上是用户编写代码区域
    LabelArray = json.dumps(LabelArray)
    print(LabelArray)

插件的原理是从begin_word_list提取一个开始的字符,从 end_word_list提取一个结束的字符,之后使用这两个字符串去摘要中进行匹配。如果可以匹配到就提取出来作为标题,如果字符过长,会对提取出来的标题进行截取。如果没有匹配到标题,就使用默认采集到的标题。当然了这个插件功能不是很完善,有需要的朋友可以进行修改。这里仅仅为了方便你快速了解火车采集器python插件开发,让你更好的去采集数据,实现解决人力的目的。


如果你还有其它疑问可以来本站搜索相关问题,这里会有你想要的答案:火车脚本网

还有什么疑问可以提出来
  • 全部评论(0
    还没有评论,快来抢沙发吧!