Boblee人工智能硕士毕业,擅长及爱好python,基于python研究人工智能、群体智能、区块链等技术,并使用python开发前后端、爬虫等。

1.背景

今天打算翻一波墙,爬取一下谷歌搜索热度。找台可以浏览谷歌得电脑,打开谷歌热度。以区块链为条件进行搜索。谷歌还是很人性化提供下载。

2.数据爬取

F12打开一下,找到数据来源,如下:

发现网址是这个:https://trends.google.com/trends/api/widgetdata/multiline?hl=zh-CN&tz=-480&req=%7B%22time%22:%222019-04-25+2020-04-25%22,%22resolution%22:%22WEEK%22,%22locale%22:%22zh-CN%22,%22comparisonItem%22:%5B%7B%22geo%22:%7B%7D,%22complexKeywordsRestriction%22:%7B%22keyword%22:%5B%7B%22type%22:%22BROAD%22,%22value%22:%22%E5%8C%BA%E5%9D%97%E9%93%BE%22%7D%5D%7D%7D%5D,%22requestOptions%22:%7B%22property%22:%22%22,%22backend%22:%22IZG%22,%22category%22:0%7D%7D&token=APP6_UEAAAAAXqWN2yAvi1CbzrzgWceV9bctbP5a5ByT&tz=-480

其它都好说这个token是什么鬼。

token全局一搜索。

找到个新链接:

https://trends.google.com/trends/api/explore?hl=zh-CN&tz=-480&req=%7B%22comparisonItem%22:%5B%7B%22keyword%22:%22%E5%8C%BA%E5%9D%97%E9%93%BE%22,%22geo%22:%22%22,%22time%22:%22today+12-m%22%7D%5D,%22category%22:0,%22property%22:%22%22%7D&tz=-480

好吧,思路有了先获取token,最后在获取内容。

3.代码实现

1.获取token。

# -*- coding: utf-8 -*-import timeimport jsonimport requestsdef get_token():try:rs = requests.get('https://trends.google.com/trends/explore?q=blockchain')# print(rs.cookies.get_dict()['NID'])headers = {'authority': 'trends.google.com','method': 'GET','path': '/trends/api/explore?hl=zh-CN&tz=-480&req=%7B%22comparisonItem%22:%5B%7B%22keyword%22:%22blockchain%22,%22geo%22:%22%22,%22time%22:%22today+12-m%22%7D%5D,%22category%22:0,%22property%22:%22%22%7D&tz=-480','scheme': 'https','accept': 'application/json, text/plain, */*','accept-encoding': 'gzip, deflate, br','referer': 'https://trends.google.com/trends/explore?q=blockchain','user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36','cookie': '__utmc=10102256; __utmz=10102256.1578533764.7.6.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided); __utma=10102256.1870595916.1574039570.1578533764.1578534245.8; __utmt=1; __utmb=10102256.7.9.1578548386183; CONSENT=YES+NL.zh-CN+V14; ANID=AHWqTUmMKNQcriAUhD0KV5fhDVWYVzGRm6ITNdfFwaDGvMtTx7Cyo4zUq8eCkbG9; NID=' +rs.cookies.get_dict()['NID'] + '; 1P_JAR=2020-1-9-5','x-client-data': 'CLO1yQEIjLbJAQiltskBCMS2yQEIqZ3KAQioo8oBCLGnygEI4qjKAQjxqcoBCMuuygEI97TKAQ=='}s = requests.Session()data = s.get('https://trends.google.com/trends/api/explore?hl=zh-CN&tz=-480&req=%7B%22comparisonItem%22:%5B%7B%22keyword%22:%22blockchain%22,%22geo%22:%22%22,%22time%22:%22today+12-m%22%7D%5D,%22category%22:0,%22property%22:%22%22%7D&tz=-480',headers=headers)data = data.texttoken = json.loads(data[data.find('{'):])['widgets'][0]['token']return {'token': token}except Exception as e:return {'error': str(e)}

2.获取数据。

def get_data(token):time_stop = str(time.strftime("%Y-%m-%d"))time_from_ = time_stop.split('-')time_from = str(int(time_from_[0]) - 1) + '-' + time_from_[1] + '-' + time_from_[2]url = 'https://trends.google.com/trends/api/widgetdata/multiline?hl=zh-CN&tz=-480&req=%7B%22time%22:%22' + time_from + '+' + time_stop + '%22,%22resolution%22:%22WEEK%22,%22locale%22:%22zh-CN%22,%22comparisonItem%22:%5B%7B%22geo%22:%7B%7D,%22complexKeywordsRestriction%22:%7B%22keyword%22:%5B%7B%22type%22:%22BROAD%22,%22value%22:%22blockchain%22%7D%5D%7D%7D%5D,%22requestOptions%22:%7B%22property%22:%22%22,%22backend%22:%22IZG%22,%22category%22:0%7D%7D&token=' + str(token) + '&tz=-480'# print(url)rsp = requests.get(url)rsp = str(rsp.text)data = '{' + rsp[rsp.find('"default"'):]# print(/ans)data_time =[]data_value =[]data = json.loads(data)['default']['timelineData']for i in range(len(data)):temp = data[i]time_ = int(temp['time'])time_local = time.localtime(time_)# 转换成新的时间格式(2016-05-05 20:28:54)data_time.append(time.strftime("%d/%m/%Y %H:%M:%S", time_local))data_value.append(str(temp['value']).replace('[', '').replace(']', '')) # 259return data_time, data_value

4.结语

本文实现了自动化爬取谷歌热度得功能,条件有点复杂,需要找一台能上谷歌的电脑,注意设置为全局模式。保证python中可以请求谷歌热度。

python爬取谷歌学术_python爬取谷歌热度相关推荐

  1. 使用Selenium从IEEE与谷歌学术批量爬取BibTex文献引用

    搞科研的小伙伴总是会被期刊严苛的引用文献格式搞的很头疼.虽然常用的文献软件可以一键导出BibTex,但由于很多论文在投稿之前都会先发上Arxiv占坑,软件就很可能会把文献引出为来自Arxiv.我用的是 ...

  2. python 柱状图上显示字体_Python爬取百部电影数据,我发现了这个惊人真相!

    2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%:国产电影总票房411.75亿元,同比增长8.65%,市场占比 ...

  3. python抓取微博评论_Python爬取新浪微博评论数据,你有空了解一下?

    开发工具 Python版本:3.6.4 相关模块: argparse模块: requests模块: jieba模块: wordcloud模块: 以及一些Python自带的模块. 环境搭建 安装Pyth ...

  4. python爬取手机微信_Python爬取微信好友

    前言 今天看到一篇好玩的文章,可以实现微信的内容爬取和聊天机器人的制作,所以尝试着实现一遍,本文记录了实现过程和一些探索的内容 itchat安装 对微信的控制可以使用itchat来实现,我们找到itc ...

  5. python开源代码百度盘_python爬取百度云网盘资源-源码

    今天测试用了一下python爬取百度云网盘资源. 代码片段import urllib import urllib.request import webbrowser import re def yun ...

  6. python爬取动态网页_python爬取动态网页数据,详解

    原理:动态网页,即用js代码实现动态加载数据,就是可以根据用户的行为,自动访问服务器请求数据,重点就是:请求数据,那么怎么用python获取这个数据了? 浏览器请求数据方式:浏览器向服务器的api(例 ...

  7. python爬关键词百度指数_Python 抓取指定关键词的百度指数

    百度指数很多时候在我们做项目的时候会很有帮助,从搜索引擎的流量端给到我们一些帮助,比如:家具行业的销量跟"装修","新房","二手房"等关键 ...

  8. python搜索网页特定区域内容_Python爬取练习:指定百度搜索的内容并提取网页的标题内容...

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章源于白菜学python ,作者小白菜 刚接触Python的新手.小白,可以复制下面的链接去 ...

  9. python大规模获取豆瓣影评_python爬取豆瓣电影排行榜(requests)

    ''' 爬取豆瓣电影排行榜 设计思路: 1.先获取电影类型的名字以及特有的编号 2.将编号向ajax发送get请求获取想要的数据 3.将数据存放进excel表格中 ''' 环境部署: 软件安装: 模块 ...

  10. python爬取pdf内容_Python爬取读者并制作成PDF

    学了下beautifulsoup后,做个个网络爬虫,爬取读者杂志并用reportlab制作成pdf.. crawler.py #!/usr/bin/env python #coding=utf-8 & ...

最新文章

  1. redis应用场景(2)日志记录及指标统计
  2. QT学习:QPainter与QPainterPath
  3. nginx上搭建https服务
  4. 解决Chrome浏览器高版本无法拖拽离线安装CRX格式插件的问题
  5. 富二代谈起中国做技术的地位(转载)
  6. python基础之01数据类型-变量-运算浅解
  7. Winform datagridview相关操作
  8. Mybatis中example的使用
  9. UILabel(富文本)
  10. 开源分布式搜索平台ELK+Redis+Syslog-ng实现日志实时搜索
  11. 怎么在linux终端上sed,Linux中如何使用sed命令
  12. java代码实现画板_求好心人帮找或做个JAVA画板程序 代码,主要能实现简单的画板功能!...
  13. 利用计算机技术和数字通讯,数字电子技术在通信网络的应用
  14. VSCode解决中文乱码问题
  15. 信号处理第一式——离散信号序列的基本运算及MATLAB实现
  16. 如何成为数据分析师?数据分析师的职业路线是什么样的?
  17. 用于Android开发的免费类库和工具集合
  18. uniapp 微信小程序开发 解决旧版本缓存
  19. iOS 15 新功能:即使手机关闭,也能找到丢失的iPhone
  20. mapbox-gl开发教程(十):创建marker

热门文章

  1. git 版本控制~ 文件没有绿色和红色图标
  2. Android Studio 单独启动安卓模拟器教程
  3. 团队作业9——项目验收与总结
  4. 在线思维导图制作教程 有哪些制作思维导图的工具?
  5. ef1a启动子_组织特异性启动子的筛选方法
  6. 按搜索量排名前100位访问量最高的网站(截至2020年)
  7. 为啥好多公司面试程序员用纸写代码?不会是因为缺少笔记本电脑吧
  8. 这份免税的农产品销售发票,可以抵扣9%的增值税吗?
  9. mapreduce求平均值
  10. F - Pasha and Phone CodeForces - 595B(数学)