python爬虫中抓取指数的实例讲解
作者:小妮浅浅 时间:2022-02-18 04:59:58
有一些数据我们是没法直观的查看的,需要通过抓取去获得。听到指数这个词,有的小伙伴们觉得很复杂,似乎只在股票的时候才听说的,比如一些数据的涨跌分析都是比较棘手的问题。不过指数对于我们的数据分析还是很有帮助的,今天小编就python爬虫中抓取指数得方法给大家带来讲解。
刚好这几天需要用到这个爬虫,结果发现baidu指数的请求有点变化,所以就改了改:
import requests
import sys
import time
word_url = 'http://index.baidu.com/api/SearchApi/thumbnail?area=0&word={}'
COOKIES = ''
headers = {
'Accept': 'application/json, text/plain, */*',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Cache-Control': 'no-cache',
'Cookie': COOKIES,
'DNT': '1',
'Host': 'index.baidu.com',
'Pragma': 'no-cache',
'Proxy-Connection': 'keep-alive',
'Referer': 'http://index.baidu.com/v2/main/index.html',
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36',
'X-Requested-With': 'XMLHttpRequest',
}
def decrypt(t,e):
n = list(t)
i = list(e)
a = {}
result = []
ln = int(len(n)/2)
start = n[ln:]
end = n[:ln]
for j,k in zip(start, end):
a.update({k: j})
for j in e:
result.append(a.get(j))
return ''.join(result)
def get_ptbk(uniqid):
url = 'http://index.baidu.com/Interface/ptbk?uniqid={}'
resp = requests.get(url.format(uniqid), headers=headers)
if resp.status_code != 200:
print('获取uniqid失败')
sys.exit(1)
return resp.json().get('data')
def get_index_data(keyword, start='2011-01-03', end='2019-08-05'):
keyword = str(keyword).replace("'", '"')
url = f'http://index.baidu.com/api/SearchApi/index?area=0&word={keyword}&area=0&startDate={start}&endDate={end}'
resp = requests.get(url, headers=headers)
print('获取指数失败')
content = resp.json()
data = content.get('data')
user_indexes = data.get('userIndexes')[0]
uniqid = data.get('uniqid')
ptbk = get_ptbk(uniqid)
while ptbk is None or ptbk == '':
ptbk = get_ptbk(uniqid)
all_data = user_indexes.get('all').get('data')
result = decrypt(ptbk, all_data)
result = result.split(',')
print(result)
if __name__ == '__main__':
words = [[{"name": "酷安", "wordType": 1}]]
get_index_data(words)
输出:
运行代码就可以得到我们想要的指数了,当然也可以用来看股票以及其他的一些操作,运用python爬虫解决都是不错的选择,感兴趣的小伙伴也可以跟着小编尝试一下。
来源:https://www.py.cn/jishu/jichu/21440.html
标签:python爬虫,抓取指数
0
投稿
猜你喜欢
Python深度学习pytorch神经网络汇聚层理解
2022-08-05 11:57:15
Python 中的lambda匿名函数和三元运算符
2023-04-21 05:22:18
JavaScript 颜色梯度和渐变效果
2009-03-18 11:16:00
基于Python制作一键桌面整理工具
2022-08-22 11:45:52
关于淘宝页面编码的疑惑
2009-12-04 12:54:00
Mysql5写中文乱码问题解决
2007-09-17 12:38:00
矩形相交以及求出相交的区域的原理解析
2023-08-17 18:39:09
Python小白垃圾回收机制入门
2022-05-20 04:38:42
matplotlib绘制甘特图的万能模板案例
2022-07-11 20:24:08
解决Js先触发失去焦点事件再执行点击事件的问题
2024-04-22 12:50:33
Python如何生成随机数及random随机数模块应用
2022-07-28 22:24:21
谈谈为什么你的 JavaScript 代码如此冗长
2024-04-17 09:50:07
简单介绍MySQL中索引的使用方法
2024-01-15 07:04:50
怎样用cmd命令行运行Python文件
2023-07-15 00:25:11
Python实现并行抓取整站40万条房价数据(可更换抓取城市)
2021-09-24 10:56:43
python调用百度语音识别实现大音频文件语音识别功能
2023-11-29 00:59:53
python中random.randint和random.randrange的区别详解
2021-03-11 00:24:15
linux修改mysql数据库文件的路径
2024-01-19 20:50:42
vue-cli4如何打包静态资源到指定目录
2024-05-22 10:43:24
python 将字符串转换成字典dict的各种方式总结
2022-06-28 21:13:35