当前位置: 首页 > news >正文

python爬虫实战(2)--爬取某博热搜数据

1. 准备工作

使用python语言可以快速实现,调用BeautifulSoup包里面的方法
安装BeautifulSoup

pip install BeautifulSoup

完成以后引入项目

2. 开发

定义url

    url = 'https://s.微博.com/top/summary?cate=realtimehot'

定义请求头,微博请求数据需要cookie,设置自己的cookie

header = {'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Mobile Safari/537.36','Host': 's.weibo.com','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8','Accept-Language': 'zh-CN,zh-Hans;q=0.9','Accept-Encoding': 'gzip, deflate, br',# 定期更换Cookie'Cookie': '你的cookie'
}

cookie查看
在这里插入图片描述
分析数据结构,找到标签值

    items = soup.find('section', {'class': 'list'})

爬取的数据都是列表,定义好需要的列表list,循环标签值

 href_list = []text_list = []order_list = []type_list = []view_count_list = []for li in items.find_all('li'):# 链接地址order = li.find('strong')if order == None:continuehref = li.find('a').get('href')href_list.append('https://s.weibo.com' + href)la = li.find('i')order_list.append(order.get_text())text = li.find('span').get_text()view_count = li.find('span').find('em').get_text()view_count_list.append(view_count)text1 = text.replace(view_count, '')text_list.append(text1)if la:type = trans_icon((la.get('class')[1]))else:type = trans_icon('')type_list.append(type)

中间有个热搜类别转换方法

def trans_icon(v_str):"""转换热搜类别"""if v_str == 'icon_new':return '新'elif v_str == 'icon_hot':return '热'elif v_str == 'icon_boil':return '沸'elif v_str == 'icon_recommend':return '商'else:return '未知'

最后把抓取的数据存到xlsx

df = pd.DataFrame(data)df.to_excel('C:\\Users\\Administrator\\Desktop\\微博热搜榜.xlsx', index=False)  # 保存结果数据

3. 效果

在这里插入图片描述

http://www.lryc.cn/news/119226.html

相关文章:

  • k8s的Namespace详解
  • 【Redis】Redis内存过期策略和内存淘汰策略
  • 技术干货 | cilium 原理之sock_connect
  • K8S之Pod详解与进阶
  • 【小曾同学赠书活动】开始啦—〖测试设计思想〗
  • 【Docker晋升记】No.1--- Docker工具核心组件构成(镜像、容器、仓库)及性能属性
  • ROBOGUIDE教程:FANUC机器人X型焊枪气动点焊焊接
  • 二、 根据用户行为数据创建ALS模型并召回商品
  • [golang gin框架] 45.Gin商城项目-微服务实战之后台Rbac微服务之角色权限关联
  • Redis中的数据类型
  • java spring cloud 企业工程管理系统源码+二次开发+定制化服务 em
  • Java程序猿搬砖笔记(十五)
  • flask----内置信号的使用/django的信号/ flask-script/sqlalchemy介绍和快速使用/sqlalchemy介绍和快速使用
  • Zookeeper 面试题
  • ELK 企业级日志分析系统(二)
  • Linux版本 centOS 7,java连接mysql
  • 开发工具IDEA的下载与初步使用【各种快捷键的设置,使你的开发事半功倍】
  • YoloV5/YoloV7优化:感受野注意力卷积运算(RFAConv),效果秒杀CBAM和CA等 | 即插即用系列
  • freeswitch的mod_xml_curl模块动态获取configuration
  • CANdelaStudio 使用介绍
  • 锚框【动手学深度学习】
  • Qt扫盲-Qt Model/View 理论总结 [上篇]
  • 【猿灰灰赠书活动 - 01期】- 【Python网络爬虫入门到实战】
  • 小兔鲜项目 uniapp (1)
  • 盛弘电气2021秋招笔试题
  • Poco框架(跨平台自动化测试框架)
  • 使用RANSAC算法在点云中拟合原始3D形状:pyRANSAC-3D的介绍和应用
  • GPT-3.5 人工智能还是人工智障?——西红柿炒钢丝球!!
  • 移动技术相关基本概念
  • 数学建模—分类模型