Python爬虫实战!爬取百度指数并可视化

文章讲述了作者如何使用Python脚本通过代理IP访问百度指数API,解码加密数据,然后提取并可视化主流编程语言的热度数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

海哥发现百度指数的加密方式又变了,修改了一下之前的代码。

完整代码如下。

import json
import requests
import urllib.request
from datetime import datetime
from datetime import timedelta


# 获取IP代理
def get_proxy():
    opener = urllib.request.build_opener(
        urllib.request.ProxyHandler(
            {'http': 'http://brd-customer-hl_5dede465-zone-try-country-cn:pdqt396jal8m@brd.superproxy.io:22225',
             'https': 'http://brd-customer-hl_5dede465-zone-try-country-cn:pdqt396jal8m@brd.superproxy.io:22225'}))

    response = opener.open('http://lumtest.com/myip.json').read()
    response_str = response.decode('utf-8')
    ip = json.loads(response_str)['ip']

    proxies = {
        "http": "http://{}".format(ip),
        "https": "http://{}".format(ip),
    }

    return proxies


# 解码函数
def decrypt(ptbk, index_data):
    n = len(ptbk)//2
    a = dict(zip(ptbk[:n], ptbk[n:]))
    return "".join([a[s] for s in index_data])


def reCode(data, ptbk):
    data = data['data']
    li = data['userIndexes'][0]['all']['data']
    startDate = data['userIndexes'][0]['all']['startDate']
    year_str = startDate[:4]  # 使用切片取前四个字符,即年份部分
    try:
        # 将年份字符串转换为整数
        year = int(year_str)
        # 根据年份判断是否为闰年
        if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
            year = 366
        else:
            year = 365
    except :
        year =365

    if li =='':
        result = {}
        name = data['userIndexes'][0]['word'][0]['name']
        tep_all = []
        while len(tep_all) < year:
            tep_all.insert(0, 0)
        result["name"] = name
        result["data"] = tep_all
    else:
        ptbk = ptbk
        result 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值