python爬虫中抓取指数的实例讲解


Posted in Python onDecember 01, 2020

有一些数据我们是没法直观的查看的,需要通过抓取去获得。听到指数这个词,有的小伙伴们觉得很复杂,似乎只在股票的时候才听说的,比如一些数据的涨跌分析都是比较棘手的问题。不过指数对于我们的数据分析还是很有帮助的,今天小编就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爬虫中抓取指数的实例讲解 

运行代码就可以得到我们想要的指数了,当然也可以用来看股票以及其他的一些操作,运用python爬虫解决都是不错的选择,感兴趣的小伙伴也可以跟着小编尝试一下。

到此这篇关于python爬虫中抓取指数的实例讲解的文章就介绍到这了,更多相关python爬虫中如何抓取指数内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python实现对PPT文件进行截图操作的方法
Apr 28 Python
Python中用于计算对数的log()方法
May 15 Python
python实现的用于搜索文件并进行内容替换的类实例
Jun 28 Python
python基于BeautifulSoup实现抓取网页指定内容的方法
Jul 09 Python
Python自动发送邮件的方法实例总结
Dec 08 Python
python pandas写入excel文件的方法示例
Jun 25 Python
python pip源配置,pip配置文件存放位置的方法
Jul 12 Python
python实现图片九宫格分割
Mar 07 Python
python3.8 微信发送服务器监控报警消息代码实现
Nov 05 Python
Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】
May 29 Python
Python使用Selenium实现淘宝抢单的流程分析
Jun 23 Python
python3.7添加dlib模块的方法
Jul 01 Python
OpenCV灰度化之后图片为绿色的解决
Dec 01 #Python
python批量合成bilibili的m4s缓存文件为MP4格式 ver2.5
Dec 01 #Python
python连接mongodb数据库操作数据示例
Nov 30 #Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
Nov 30 #Python
Python命令行参数定义及需要注意的地方
Nov 30 #Python
用sleep间隔进行python反爬虫的实例讲解
Nov 30 #Python
Python基于Faker假数据构造库
Nov 30 #Python
You might like
php for 循环语句使用方法详细说明
2010/05/09 PHP
PHP设计模式之装饰者模式
2012/02/29 PHP
浅析Dos下运行php.exe,出现没有找到php_mbstring.dll 错误的解决方法
2013/06/29 PHP
PHP数据库连接mysql与mysqli对比分析
2016/01/04 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
给Function做的OOP扩展
2009/05/07 Javascript
jQuery.clean使用方法及思路分析
2013/01/07 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
jquery通过ajax加载一段文本内容的方法
2015/01/15 Javascript
JavaScript实现获取dom中class的方法
2015/02/09 Javascript
深入理解JQuery循环绑定事件
2016/06/02 Javascript
JavaScript ES5标准中新增的Array方法
2016/06/28 Javascript
原生js实现简单的Ripple按钮实例代码
2017/03/24 Javascript
JS实现的模仿QQ头像资料卡显示与隐藏效果
2017/04/07 Javascript
利用express启动一个server服务的方法
2017/09/17 Javascript
vue使用一些外部插件及样式的配置代码
2019/11/18 Javascript
微信小程序8种数据通信的方式小结
2020/02/03 Javascript
Js跳出两级循环方法代码实例
2020/09/22 Javascript
Python中实现从目录中过滤出指定文件类型的文件
2015/02/02 Python
Python中的集合类型知识讲解
2015/08/19 Python
Python设置Socket代理及实现远程摄像头控制的例子
2015/11/13 Python
python编程线性回归代码示例
2017/12/07 Python
numpy中的高维数组转置实例
2018/04/17 Python
Python日期时间对象转换为字符串的实例
2018/06/22 Python
Python列表解析配合if else的方法
2018/06/23 Python
美国领先的个性化礼品商城:Personalization Mall
2019/07/27 全球购物
图库照片、免版税图片、矢量艺术、视频片段:Depositphotos
2019/08/02 全球购物
衰败城市英国官网:Urban Decay英国
2020/04/29 全球购物
Bandier官网:奢侈、时尚前卫的健身服装首选目的地
2020/07/05 全球购物
AJAX应用和传统Web应用有什么不同
2013/08/24 面试题
学位证书委托书
2014/09/30 职场文书
留学推荐信中文范文
2015/03/26 职场文书
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js
SpringBoot项目部署到阿里云服务器的实现步骤
2022/06/28 Java/Android