python爬虫编写---获取股吧热搜话题

学会使用python编写自动化脚本减少人工收集数据的时间精力,明白爬虫的原理逻辑,使用简单方式或取数据,保存数据。

python提供了丰富的第三方库给我们使用,大大降低了我们编写程序的难度,此次只用到了requests、pandas两个库即可完成该项目。

Requests介绍

requests 库是 Python 中一个常用的 HTTP 请求库,它提供了简洁且强大的接口,用于发送 HTTP 请求并处理响应。相比于 urllib 库,requests 库更加方便和直观,适合编写爬虫程序和进行网络请求操作

基本作用:

  • 发送请求:你可以使用Requests库发送各种HTTP请求,如GET、POST、PUT、DELETE等。

  • 传递URL参数:可以轻松地将字典传递给params参数,Requests库会自动将字典编码为URL参数。

  • 发送数据:可以使用data参数发送表单数据,Requests库会自动编码为合适的格式。

  • JSON响应内容:如果响应是JSON格式,可以使用.json()方法直接获取JSON解析后的数据。

  • 自定义头部:可以通过headers参数添加HTTP头部。

  • 复杂的POST请求:可以发送多部分编码的文件。

                                                                ......

pandas介绍

Pandas 是一个开源的Python数据分析库,提供了高性能、易于使用的数据结构和数据分析工具。它是基于NumPy库构建的,特别适合处理表格数据,例如Excel电子表格或SQL表。Pandas是数据科学领域中常用的工具之一,它支持不同类型的数据,如数值、字符串、时间序列等。

Pandas的主要功能

Pandas提供了丰富的功能,包括数据清洗、数据转换、数据分析和数据可视化。它可以处理缺失数据、重复数据,支持数据的合并、重塑和分组。通过整合MatplotlibSeaborn等库,Pandas还可以进行数据可视化,绘制各种统计图表。

                                                                ...... 

代码实现:

导入所需库---requests库用于发送HTTP请求,模拟浏览器获取网页数据;pandas库用于数据处理和表格生成,方便后续存储为Excel文件
目标URL:东方财富网热门话题数据接口
该URL是通过分析网页请求发现的API接口,用于获取话题列表数据

设置请求头(Headers),模拟真实浏览器行为
user-agent字段标识浏览器类型和版本,避免被网站识别为爬虫
referer字段表示请求来源页面,符合网站跳转逻辑

初始化数据存储列表
big_data用于存放从各个页面爬取的话题数据,每个元素是一条记录列表

循环获取多页数据(页码从1到5)
通过观察发现URL参数中的p值代表页码,ps=10表示每页显示10条数据

    构造POST请求的参数
    param参数包含分页信息和数据类型(type=0表示热门话题)
    path参数指定数据接口路径,对应首页话题列表
 

    发送POST请求
    使用requests.post()方法向目标URL提交参数和请求头
    该方法会自动处理HTTP连接,返回response对象包含服务器响应内容

    解析响应数据
    调用response.json()将返回的JSON格式数据转为Python字典对象
    假设接口返回的JSON结构中,'re'字段包含话题列表数据
 

    遍历单页数据中的每条话题记录
    descs代表每条话题的详细信息字典

        提取所需字段
        nickname:话题标题
        desc:话题简介(可能包含关联股信息)
        postNumber:评论数
        clickNumber:浏览量
        htid:话题ID,用于生成详情页链接
 

        构造话题详情页链接
        通过htid参数拼接完整URL,方便后续访问详情页

        将单条记录添加到数据列表
        按顺序存储字段,确保与后续DataFrame列名对应

将列表数据转为DataFrame表格
columns参数指定表格列名,需与big_data中记录顺序一致

导出数据到Excel文件
to_excel()方法将DataFrame写入Excel,index=False取消默认行索引

完整代码:

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值