zoukankan      html  css  js  c++  java
  • 百度热点爬取

    信息来源地址

    一、分析爬取的网址

           f12不难找到排行版对应的区域,发现每个标题的各个元素是一个个td被包装在

    一个tr标签里面,每一个标题都是一个tr。我们要获取的关键信息有排名,关键词,

    搜索指数。

                 排名 :第一个td               class=''first'

                 关键词:第二个td               class = 'keyword'

                 搜索指数:最后一个td   class = 'last'

    二、思路:

            分析网址,上面已经做完,找到数据所在地,切片,获取值,然后格式化的输出就可以

            代码如下:

    import requests
    from bs4 import BeautifulSoup
    import bs4
    
    def get_html(url,headers):
        r = requests.get(url,headers = headers)
        r.encoding = r.apparent_encoding
        return r.text
    
    
    def get_pages(html):
        soup = BeautifulSoup(html,'html.parser')
        all_=soup.find_all('tr')[1:]  #切片,寻找数据
        for each_topic in all_:
            rank = each_topic.find('td', class_='first')  # 排名
            name = each_topic.find('td', class_='keyword')  # 标题
            times = each_topic.find('td', class_='last')  #搜索指数
            if rank != None and name!=None and times!= None:
                rank = each_topic.find('td',class_='first').get_text().replace(' ','').replace('
    ','')
                name = each_topic.find('td',class_='keyword').get_text().replace(' ','').replace('
    ','')
                times = each_topic.find('td',class_='last').get_text().replace(' ','').replace('
    ','')
                tplt = "排名:{0:^4}	标题:{1:{3}^15}	热度:{2:^8}"
                print(tplt.format(rank,name,times,chr(12288)))
    
    def main():
        url = 'http://top.baidu.com/buzz?b=1&fr=20811'
        headers= {'User-Agent':'Mozilla/5.0'}
        html = get_html(url,headers)
        get_pages(html)
    
    if __name__=='__main__':
        main()
    View Code
    © 版权声明
    文章版权归作者所有,未经允许请勿转载。
    THE END
  • 相关阅读:
    解决input获取焦点时底部菜单被顶上来问题
    JavaScript学习笔记
    JavaScript表单验证
    js 中{},[]中括号,大括号使用详解
    陀飞轮
    娱乐天空
    左右手
    软测 学习
    git 学习
    spring boot 学习
  • 原文地址:https://www.cnblogs.com/xp-thebest/p/12679062.html
Copyright © 2011-2022 走看看