当前位置 博文首页 > Python获取百度热搜的完整代码

    Python获取百度热搜的完整代码

    作者:国家一级保护咸鱼 时间:2021-05-01 18:05

    好久没写了,就把上课做的一个小东西拿出来分享一下吧。
    百度网页截图如下 ↓↓↓

    百度网页截图

    程序运行输出结果截图 ↓↓↓

    程序运行输出结果截图

    上代码 ↓↓↓

    from lxml import etree
    from lxml import html
    import requests
    
    headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36'}
    page = requests.get("https://www.baidu.com",headers=headers)
    html = page.text
    #print(source1)
    # 从字符串解析
    element = etree.HTML(html)
    
    # 元素列表,获取的方式列出了如下两种
    # ps = element.xpath('//*[@]/li/a/span[2]')
    ps = element.xpath('//*[@class="title-content-title"]')
    
    #热搜文本内容
    text = []
    if len(ps) > 0:
      for p in ps:
        #输出节点的文本
        text1 = p.text
        text.append(text1)
    else:
      print("空")
      
    x = element.xpath('//*[@class="s-hotsearch-content"]/li')
    
    #热搜文本对应的排名
    index = []
    for x1 in x:
      #获取节点的属性
      index1 = x1.get("data-index")
      index.append(index1)
    
    print(text)  
    print(index)
    
    #定义一个对文本和排名进行匹配的函数,返回一个字典型数据
    def PP(index_array,text_array):
      x = {}
      i = 0
      for index_a in index_array:
        #index_a = int(index_a)
        
        x[index_a] = text_array[i]
        i = i + 1
      return x
    
    re_text = PP(index,text)
    #对字典性数据按key进行排序,即key=lambda re:re[0],排序完成后再转换为字典型数据
    last_text = dict(sorted(re_text.items(),key=lambda re:re[0]))
    js