查看原文
其他

百度指数 | 使用qdata采集百度指数

大邓 大邓和他的Python
2024-09-09

之前一直没有好的办法采集,最近发现一个神奇的qdata包可以采集百度指数不太好采集。

安装

打开命令行(cmd、terminal),

# 避免与pycryptodome冲突
pip3 uninstall pycrypto  

#安装最新的qdata
pip3 install --upgrade qdata



百度指数

qdata内置百度指数的省份(城市)对应的地区代码,以省份代码为例

from qdata.baidu_index import PROVINCE_CODE, CITY_CODE

PROVINCE_CODE

Run

    {'山东''901',
     '贵州''902',
     '江西''903',
     '重庆''904',
     '内蒙古''905',
     '湖北''906',
     '辽宁''907',
     '湖南''908',
    ....
     '甘肃''925',
     '新疆''926',
     '河南''927',
     '安徽''928',
     '山西''929',
     '海南''930',
     '台湾''931',
     '西藏''932',
     '香港''933',
     '澳门''934'}

案例

采集

  • 时间段 2022-05-01 ~ 2022-08-01
  • 地区 山东
  • 关键词 ['疫情', '锻炼', '居家']

的百度指数数据。



准备你的cookie

在命令行 Python环境 下运行

from qdata.baidu_login import get_cookie_by_qr_login
get_cookie_by_qr_login()

上方代码运行结束后,弹出一个二维码窗体。

使用百度相关app,笔者使用 百度网盘app 扫码, 命令行内出现了一串字符串就是cookie。


代码

import time
from qdata.baidu_index import PROVINCE_CODE
from qdata.baidu_index import get_search_index
import csv

province = '山东'
keywords = ['网购''居家']
start_dt = '2022-07-01'
end_dt = '2022-08-01'

#你的cookie
cookie = '你的cookie'

#数据存储于data文件夹内
with open('data/{}.csv'.format(province), 'a+', encoding='utf-8', newline=''as csvf:
    fieldnames = ['province''type''date''index']
    writer = csv.DictWriter(csvf, fieldnames=fieldnames)
    writer.writeheader()
    for info in get_search_index(keywords_list = [keywords], 
                                  start_date = start_dt, 
                                  end_date = end_dt, 
                                  area  = PROVINCE_CODE[province],
                                  cookies = cookie):

        
        data = {'province': province,
                'type': info['type'],
                'date': info['date'], 
                'index': info['index']}
        print(data)
        writer.writerow(data)

Run

    {'province''山东''type''all''date''2022-07-01''index''200'}
    {'province''山东''type''all''date''2022-07-02''index''148'}
    {'province''山东''type''all''date''2022-07-03''index''257'}

    ...
    {'province''山东''type''pc''date''2022-07-01''index''59'}
    {'province''山东''type''pc''date''2022-07-02''index''0'}
    {'province''山东''type''pc''date''2022-07-03''index''118'}

    ...
    {'province''山东''type''wise''date''2022-07-01''index''141'}
    {'province''山东''type''wise''date''2022-07-02''index''148'}
    {'province''山东''type''wise''date''2022-07-03''index''139'}

type字段的含义

  • all 信息来自 PC+移动
  • pc 信息来自 PC
  • wise 信息来自 移动

山东 2022-07-01 PC+移动 的指数是 200, 刚好等于 pc59+移动141 ,也等于 网购65+居家135

最后数据存储于data文件夹内,如下图。


精选文章

从符号到嵌入:计算社会科学的两种文本表示

长期征稿 | 欢迎各位前来投稿

17G数据集 | 深交所企业社会责任报告

推荐 | 社科(经管)文本分析快速指南

使用cntext训练Glove词嵌入模型

认知的测量 | 向量距离vs语义投影

Wordify | 发现和区分消费者词汇的工具

在jupyter中显示pdf内容

EmoBank | 中文维度情感词典

Asent库 | 英文文本数据情感分析

视频专栏课 | Python网络爬虫与文本分析

PNAS | 文本网络分析&文化桥梁Python代码实现

BERTopic库 | 使用预训练模型做话题建模

tomotopy | 速度最快的LDA主题模型

管理世界 | 使用文本分析词构建并测量短视主义

Wow~70G上市公司定期报告数据集

100min视频 | Python文本分析与会计

在jupyter内运行R代码

blogdown包 | 使用R语言维护Hugo静态网站
改善matplotlib在jupyter内的渲染效果

使用R语言将多个txt汇总到一个csv文件中
继续滑动看下一个
大邓和他的Python
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存