导入模块:导入了用于发送 HTTP 请求的requests库、操作 MySQL 数据库的pymysql库、解析配置文件的configparser库以及用于从 JSON 数据中提取特定字段的jsonpath库,方便后续的数据筛选操作。
发起请求与获取数据:使用requests库发送 GET 请求到指定的微博热搜接口,并将返回的响应内容(JSON 格式)通过response.json()方法解析为 Python 的字典或列表等数据结构,方便后续处理。
数据筛选部分:利用jsonpath库,按照指定的 JSONPath 表达式从解析后的 JSON 数据中提取出热搜标题、排名以及搜索量对应的列表数据,其中$.data.realtime[*].note等表达式表示从 JSON 数据结构的特定层级和位置获取相应字段的值。
数据处理与数据库插入操作(核心逻辑部分):首先通过zip函数将提取到的标题、排名、搜索量的列表数据进行一一对应打包,在循环中对每条热搜数据进行处理。这里将排名ranking的值加 1(可能原排名是从 0 开始计数,调整为从 1 开始更符合常规理解)。
接着使用configparser读取配置文件database_config.ini,从中获取数据库连接所需的主机地址、用户名、密码以及数据库名称等信息。
通过pymysql建立与 MySQL 数据库的连接,创建游标,执行插入数据的 SQL 语句(将处理后的排名、标题、搜索量数据插入到名为weibo_hot_search的表中),成功插入后提交事务,最后关闭游标和连接。若操作过程中出现数据库相关错误,则打印错误信息。