爬取百度热点新闻排行榜

import requests
from bs4 import BeautifulSoup

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_topics=soup.find_all('tr')[1:]
   for each_topic in all_topics:
       topic_times = each_topic.find('td', class_='last')  # 搜索指数
       topic_rank = each_topic.find('td', class_='first')  # 排名
       topic_name = each_topic.find('td', class_='keyword')  # 标题目
       if topic_rank != None and topic_name != None and topic_times != None:
           topic_rank = each_topic.find('td', class_='first').get_text().replace(' ', '').replace('\n', '')
           topic_name = each_topic.find('td', class_='keyword').get_text().replace(' ', '').replace('\n', '')
           topic_times = each_topic.find('td', class_='last').get_text().replace(' ', '').replace('\n', '')
           # print('排名:{},标题:{},热度:{}'.format(topic_rank,topic_name,topic_times))
           tplt = "排名:{0:^4}\t标题:{1:{3}^15}\t热度:{2:^8}"
           print(tplt.format(topic_rank, topic_name, topic_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()


图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值