zoukankan      html  css  js  c++  java
  • BeautifulSoup爬取微博热搜榜

    • 获取url
    • 设定请求头
    • requests发出get请求
    • 实例化BeautifulSoup对象
    • BeautifulSoup提取数据
    import requests
      2 from bs4 import BeautifulSoup
      3 
      4 url = "https://s.weibo.com/top/summary"
      5 date = {
      6         "Refer":"top_hot",
      7         "topnav":"1",
      8         "wvr":"6"
      9         }
     10 headers = {
     11         "User-Agent":"Mozilla/5.0 (X11; Ubuntu; Linux x86_6    4; rv:81.0) Gecko/20100101 Firefox/81.0"
     12         }
     13 response = requests.get(url,params = date,headers = headers    )
     14 content = response.content.decode("utf-8")
     15 soup = BeautifulSoup(content,"lxml")
     16 tds_list = soup.find_all("td",class_ = "td-02")[1:]
     17 event_list = []
     18 for td in tds_list:
     19     event = td.find_all("a")[0].string
     20     hot = td.find_all("span")[0].string
     21     sina = {
     22             "事件":event,
     23             "热度":hot
     24             }
     25     event_list.append(sina)
     26 for event in event_list:
     27     print(event)
     28 with open("weobohot.txt","w") as f:
     29     for event in event_list:
     30         f.write(str(event) + "
    "

    生成的weohot.txt文件

    {'事件': '冯绍峰给赵丽颖的祝福评论被淹了', '热度': '4907890'}
    {'事件': '成都大学党委书记毛洪涛的遗体已被找到', '热度': '1643868'}
    {'事件': '任嘉伦在发光', '热度': '1635768'}
    {'事件': '李玟身材', '热度': '1598868'}
    {'事件': '苹果回应不配耳机和充电器', '热度': '1521308'}
    {'事件': '胡杏儿首次直播', '热度': '1364689'}
    {'事件': '狗仔101', '热度': '1334856'}
    {'事件': '复方板蓝根对新冠病毒有效', '热度': '1057010'}
    {'事件': '18岁女大学生捐献遗体', '热度': '562891'}
    {'事件': '泰国爆发抗议示威活动', '热度': '560373'}
    {'事件': '南航回应乘客抠出氧气面罩致延误', '热度': '560244'}
    {'事件': '教育部谈体育老师当班主任遭投诉', '热度': '558928'}
    {'事件': '游客晕倒遇18名医生救助守护', '热度': '471445'}
    {'事件': '中考体育将达到和语数外同分值水平', '热度': '463011'}
    {'事件': '4人26天捕鸟8万余只', '热度': '442804'}
    {'事件': 'S10门票摇号结果', '热度': '437430'}
    {'事件': '喜宝', '热度': '402599'}
    {'事件': '凤姐', '热度': '402548'}
    {'事件': '韩国献血者中有42人确诊新冠', '热度': '395386'}
    {'事件': '军训下雨时袜子没洗干净', '热度': '393559'}
    {'事件': '吴中天给杨子姗做9周年视频', '热度': '386616'}
    {'事件': '王清远', '热度': '383780'}
    {'事件': '青岛此次疫情为医院聚集性疫情', '热度': '382168'}
    {'事件': '上海破获首例网红直播带货售假案', '热度': '315914'}
    {'事件': '南方菜市场有多贴心', '热度': '281595'}
    {'事件': '鹿晗重庆', '热度': '275778'}
    {'事件': '龙丹妮收到报备了吗', '热度': '275400'}
    {'事件': '原来河狸也会搓澡', '热度': '257896'}
    {'事件': '打工人你好狠的心', '热度': '218550'}
    {'事件': '雅思', '热度': '183550'}
    {'事件': '广州疫情', '热度': '183547'}
    {'事件': '夏之光恋情', '热度': '183523'}
    {'事件': '刘诗诗复古蜂窝头', '热度': '183514'}
    {'事件': '花都', '热度': '183497'}
    {'事件': '老师将一次性餐盒改造成昙花灯', '热度': '183485'}
    {'事件': '唐嫣头巾造型', '热度': '183445'}
    {'事件': '江苏大学通报学生坠楼身亡事件', '热度': '183218'}
    {'事件': '三句话读懂国产剧', '热度': '179326'}
    {'事件': '成都西岭雪山下雪', '热度': '164400'}
    {'事件': '妈妈神奇的语言描述能力', '热度': '152580'}
    {'事件': '任豪王者荣耀', '热度': '152088'}
    {'事件': '任豪道歉', '热度': '150707'}
    {'事件': '李栋旭身材', '热度': '149847'}
    {'事件': '易建联康复时间预计30周', '热度': '149218'}
    {'事件': '全国统一的家庭群名称', '热度': '148772'}
    {'事件': '电竞班的作业', '热度': '145234'}
    {'事件': '乡村医生遗愿穿戴整齐捐给国家', '热度': '144878'}
    {'事件': '张培萌妻子称只想要女儿抚养权', '热度': '144583'}
    {'事件': '同济大学新生作业每份10米长', '热度': '143680'}
    {'事件': '全球首个埃博拉病毒治疗方法', '热度': '140690'}
    可以看出我们已经成功的爬取到了热搜榜的内容

    笨鸟先飞
  • 相关阅读:
    【React Native】某个页面禁用物理返回键
    【React Native】DeviceEventEmitter监听通知及带参数传值
    转载【React Native代码】手写验证码倒计时组件
    【React Native】 中设置 APP 名称、应用图标、为安卓添加启动图
    【React Native错误集】* What went wrong: Execution failed for task ':app:installDebug'.
    【React Native错误集】Import fails with "Failed to execute 'ImportScripts' on 'WorkerGlobalScope'"
    【React Native错误集】Android error “Could not get BatchedBridge, make sure your bundle is packaged properly” on start of app
    「React Native笔记」在React的 setState 中操作数组和对象的多种方法(合集)
    【React Native】Error: Attribute application@allowBackup value=(false) from AndroidManifest.xml
    坚果云如何使用二次验证码/谷歌身份验证器/两步验证/虚拟MFA?
  • 原文地址:https://www.cnblogs.com/zoutingrong/p/13826810.html
Copyright © 2011-2022 走看看