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

有一些数据我们是没法直观的查看的,需要通过抓取去获得。听到指数这个词,有的小伙伴们觉得很复杂,似乎只在股票的时候才听说的,比如一些数据的涨跌分析都是比较棘手的问题。不过指数对于我们的数据分析还是很有帮助的,今天小编就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爬虫中如何抓取指数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

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

    有一些数据我们是没法直观的查看的,需要通过抓取去获得.听到指数这个词,有的小伙伴们觉得很复杂,似乎只在股票的时候才听说的,比如一些数据的涨跌分析都是比较棘手的问题.不过指数对于我们的数据分析还是很有帮助的,今天小编就python爬虫中抓取指数得方法给大家带来讲解. 刚好这几天需要用到这个爬虫,结果发现baidu指数的请求有点变化,所以就改了改: import requests import sys import time word_url = 'http://index.baidu.com/ap

  • Python3爬虫中识别图形验证码的实例讲解

    本节我们首先来尝试识别最简单的一种验证码,图形验证码,这种验证码出现的最早,现在也很常见,一般是四位字母或者数字组成的,例如中国知网的注册页面就有类似的验证码,链接为:http://my.cnki.net/elibregister/commonRegister.aspx,页面: 表单的最后一项就是图形验证码,我们必须完全输入正确图中的字符才可以完成注册. 1.本节目标 本节我们就以知网的验证码为例,讲解一下利用 OCR 技术识别此种图形验证码的方法. 2. 准备工作 识别图形验证码需要的库有 T

  • Python爬虫UA伪装爬取的实例讲解

    在使用python爬取网站信息时,查看爬取完后的数据发现,数据并没有被爬取下来,这是因为网站中有UA这种请求载体的身份标识,如果不是基于某一款浏览器爬取则是不正常的请求,所以会爬取失败.本文介绍Python爬虫采用UA伪装爬取实例. 一.python爬取失败原因如下: UA检测是门户网站的服务器会检测对应请求的载体身份标识,如果检测到请求的载体身份标识为某一款浏览器,说明该请求是一个正常的请求.如果检测到请求的载体身份标识不是基于某一款浏览器的.则表示该请求为不正常的请求,则服务器端就很有可能会

  • Python爬虫必备之Xpath简介及实例讲解

    目录 前言 一.Xpath简介 二.Xpath语法规则 语法规则 标签定位 属性定位 索引定位 取文本内容 三.语法规则练习 总结 前言 网上已经有很多大佬发过Xpath,而且讲的都很好,我是因为刚开始学习网络爬虫,对这些基础重要知识不太了解,所以写一下来加深印象,本篇文章只是简单介绍一下Xpath及使用,总体来说比较基础. 一.Xpath简介 XPath(XML Path Language - XML路径语言),它是一种用来确定XML文档中某部分位置的语言. Xpath以XML为基础,提供用户

  • celery在python爬虫中定时操作实例讲解

    使用定时功能对于我们想要快速获取某个数据来说,是一个非常好的方法.这样我们就不用苦苦守在电脑屏幕前,只为蹲到某个想要的东西.在之前我们已经讲过time函数进行定时操作,这算是time函数的比较基础的一个用法了.其实定时功能同样可以用celery实现,具体的方法我们往下看: 爬虫由于其特殊性,可能需要定时做增量抓取,也可能需要定时做模拟登陆,以防止cookie过期,而celery恰恰就实现了定时任务的功能.在上述基础上,我们将`tasks.py`文件改成如下内容 from celery impor

  • python爬虫中url管理器去重操作实例

    当我们需要有一批货物需要存放时,最好的方法就是有一个仓库进行保管.我们可以把URL管理器看成一个收集了数据的大仓库,而下载器就是这个仓库货物的搬运者.关于下载器的问题,我们暂且不谈.本篇主要讨论的是在url管理器中,我们遇到重复的数据应该如何识别出来,避免像仓库一样过多的囤积相同的货物.听起来是不是很有意思,下面我们一起进入今天的学习. URL管理器到底应该具有哪些功能? URL下载器应该包含两个仓库,分别存放没有爬取过的链接和已经爬取过的链接. 应该有一些函数负责往上述两个仓库里添加链接 应该

  • python爬虫用scrapy获取影片的实例分析

    我们平时生活的娱乐中,看电影是大部分小伙伴都喜欢的事情.周围的人总会有意无意的在谈论,有什么影片上映,好不好看之类的话题,没事的时候谈论电影是非常不错的话题.那么,一些好看的影片如果不去电影院的话,在其他地方看都会有大大小小的限制,今天小编就教大家用python中的scrapy获取影片的办法吧. 1. 创建项目 运行命令: scrapy startproject myfrist(your_project_name) 文件说明: 名称 | 作用 --|-- scrapy.cfg | 项目的配置信息

  • python爬虫中多线程的使用详解

    queue介绍 queue是python的标准库,俗称队列.可以直接import引用,在python2.x中,模块名为Queue.python3直接queue即可 在python中,多个线程之间的数据是共享的,多个线程进行数据交换的时候,不能够保证数据的安全性和一致性,所以当多个线程需要进行数据交换的时候,队列就出现了,队列可以完美解决线程间的数据交换,保证线程间数据的安全性和一致性. #多线程实战栗子(糗百) #用一个队列Queue对象, #先产生所有url,put进队列: #开启多线程,把q

  • Python爬虫实现抓取京东店铺信息及下载图片功能示例

    本文实例讲述了Python爬虫实现抓取京东店铺信息及下载图片功能.分享给大家供大家参考,具体如下: 这个是抓取信息的 from bs4 import BeautifulSoup import requests url = 'https://list.tmall.com/search_product.htm?q=%CB%AE%BA%F8+%C9%D5%CB%AE&type=p&vmarket=&spm=875.7931836%2FA.a2227oh.d100&from=mal

  • Python爬虫中urllib3与urllib的区别是什么

    目录 urllib库 urllib.request模块 Request对象 1 . 请求头添加 2. 操作cookie 3. 设置代理 urllib.parse模块 urllib.error模块 urllib.robotparse模块 网络库urllib3 网络请求 GET请求 POST请求 HTTP响应头 上传文件 超时处理 urllib库 urllib 是一个用来处理网络请求的python标准库,它包含4个模块. urllib.request---请求模块,用于发起网络请求 urllib.p

随机推荐