zoukankan      html  css  js  c++  java
  • 09 信息化领域热词分类分析及解释 第三步 将清洗完毕的热词添加百度百科解释

    功能要求为:1,数据采集,定期从网络中爬取信息领域的相关热词

          2,数据清洗:对热词信息进行数据清洗,并采用自动分类技术生成自动分类计数生成信息领域热词目录。

          3,热词解释:针对每个热词名词自动添加中文解释(参照百度百科或维基百科)

          4,热词引用:并对近期引用热词的文章或新闻进行标记,生成超链接目录,用户可以点击访问;

          5,数据可视化展示:① 用字符云或热词图进行可视化展示;② 用关系图标识热词之间的紧密程度。
          6,数据报告:可将所有热词目录和名词解释生成 WORD 版报告形式导出。

    本次完成第三步的部分功能,针对每个热词名词自动添加中文解释,这里我选择的是使用百度百科来解释热词名词。

    具体思路是:读取爬取的热词文件,按行读取,读取完毕后根据获得的line来确定搜索的关键词,将关键词变量结合百度百科的固定url生成需要的url地址

    再运用xpath获取相应的位置的解释,输出即可。需要注意的是,要运用xpath的获取一个标签下的所有文本的知识点。

    代码如下:

    import requests
    from lxml import etree
    
    def climing(line):
        line1=line.replace('
    ','')
        print(line1)
        url = "https://baike.baidu.com/item/"+str(line1)
        print(url)
        head = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36',
            'cookie':'BAIDUID=AB4524A16BFAFC491C2D9D7D4CAE56D0:FG=1; BIDUPSID=AB4524A16BFAFC491C2D9D7D4CAE56D0; PSTM=1563684388; MCITY=-253%3A; BDUSS=jZnQkVhbnBIZkNuZXdYd21jMG9VcjdoanlRfmFaTjJ-T1lKVTVYREkxVWp2V2RlSVFBQUFBJCQAAAAAAAAAAAEAAACTSbM~Z3JlYXTL3tGpwOTS9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMwQF4jMEBed; pcrightad9384=showed; H_PS_PSSID=1454_21120; delPer=0; PSINO=3; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; __yjsv5_shitong=1.0_7_a3331e3bd00d7cbd253c9e353f581eb2494f_300_1581332649909_58.243.250.219_d03e4deb; yjs_js_security_passport=069e28a2b81f7392e2f39969d08f61c07150cc18_1581332656_js; Hm_lvt_55b574651fcae74b0a9f1cf9c8d7c93a=1580800784,1581160267,1581268654,1581333414; BK_SEARCHLOG=%7B%22key%22%3A%5B%22%E7%96%AB%E6%83%85%22%2C%22%E6%95%B0%E6%8D%AE%22%2C%22%E9%9D%9E%E6%AD%A3%E5%BC%8F%E6%B2%9F%E9%80%9A%22%2C%22mapper%22%5D%7D; Hm_lpvt_55b574651fcae74b0a9f1cf9c8d7c93a=1581334123'
        }
        r = requests.get(url,headers = head)
        print(r.status_code)
        html = r.content.decode("utf-8")
        #print(html)
        html1 = etree.HTML(html)
        #print(html1)
        content1 = html1.xpath('//div[@class="lemma-summary"]')
        #print(content1[0])
        if len(content1)==0:
            #custom_dot  para-list list-paddingleft-1
            content1 =html1.xpath('string(//ul[@class="custom_dot  para-list list-paddingleft-1"])')
            print(content1)
            if len(content1)==0:
                pring('未找到解释')
                content1 = '未找到解释'
        else:
            content2 =content1[0].xpath ('string(.)').replace('&nbsp','').replace('
    ','')
    
            print(content2)
    if __name__ == '__main__':
        for line in open("words.txt",encoding='utf-8'):
            #print(line, end = '')
            climing(line)
    

      

    运行截图(部分):

  • 相关阅读:
    从倒水问题到欧几里得算法扩展
    uva 10651
    STC12C5201AD AD采样+串口发送模板
    [置顶] 中国象棋程序的设计与实现–楚汉棋兵(高级版)(源码)
    【Leetcode】Same Tree
    问卷调查模块实现的过程中的历程
    差一本CSS 3的书,有兴趣的作者来写
    [置顶] 网络认证小结——你有网络身份证吗?
    音乐播放器的实现(简易版)
    空格填充器(alignBySpace)
  • 原文地址:https://www.cnblogs.com/xcl666/p/12293342.html
Copyright © 2011-2022 走看看