百度热点爬取

时间:2020-04-11
本文章向大家介绍百度热点爬取,主要包括百度热点爬取使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

信息来源地址

一、分析爬取的网址

       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('\n','')
            name = each_topic.find('td',class_='keyword').get_text().replace(' ','').replace('\n','')
            times = each_topic.find('td',class_='last').get_text().replace(' ','').replace('\n','')
            tplt = "排名:{0:^4}\t标题:{1:{3}^15}\t热度:{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

原文地址:https://www.cnblogs.com/xp-thebest/p/12679062.html