最近因科研原因,需要爬取google trends中有关Bitcoin的数据,于是开启了为期三天的艰难探索。过程虽然艰难,但结果是好的。下面将整个过程的收获记录如下。当然,这一切的前提是先连接上一台位于国外的远程服务器,所以假设看到这篇文章的小伙伴都已经连接上了远程服务器。

文章目录

  • Google Trends爬虫
    • 方案一:用本地计算机爬虫(fail)
    • 方案二:用远程服务器爬虫(success)
      • 下载python
      • Google Trends爬虫
        • 安装第三方包
        • 编辑代码
        • 将代码文件导入远程服务器
      • 数据处理

Google Trends爬虫

方案一:用本地计算机爬虫(fail)

当电脑能够正常使用Google后,我首先想到的是像之前爬虫一样,在Pycharm中编辑代码,然后在本地计算机上运行。
但随后就出现了问题。不论是用Pycharm还是Jupyter Notebook,无论如何也无法请求获取Google Trends的页面,总是报错。找了很多帖子,都没有得到解决(如果看到这篇文章的小伙伴能够指导一下,将非常感谢)


一段时间尝试后,准备另辟蹊径。既然本地计算机上外网的原理是,让能够上外网的远程服务器获取资源,然后再传给本地计算机,我也能远程操控远程服务器,那为什么不直接在远程服务器上爬虫呢,然后就有了方案二。

方案二:用远程服务器爬虫(success)

下载python

CentOS系统是自带Python2的,但是由于现在普遍使用Python3,所以还得自主安装Python3。安装方法参考这篇博文。文章讲的很详细,这里就不再赘述。但是需要补充的一点是,最后在执行创建软链接命令之前,必须先进入根目录。使用“cd …”一直退一直退,直到根目录。然后再运行后面的命令。
进入python3之后,可以用"exit()"命令退出。
但安装好之后有个bug是,每次运行python代码会出现警告,提示缺少某个东西,但我一直安装不上,希望有大佬帮忙解答。

Google Trends爬虫

安装第三方包

Python有个第三方包pytrends,用这个包可以很容易获取Google Trends某个关键词下面的数据。pytrends的详细用法可以去官网查看。
首先安装pytrends。在根目录执行如下命令

pip3 install pytrends

编辑代码

我需要获取2013-2021期间Google Trends中有关Bitcoin的趋势数据。首先在本地计算机上编写好了googleTrends.py文件如下:

import pandas as pd
from pytrends.request import TrendReqdf = pd.DataFrame(columns = ['date','Bitcoin'])
search_list=['Bitcoin']
pytrends = TrendReq()for y in range(2013,2021):yn = str(y + 1)y=str(y)timeframe='{0}-01-01 {0}-06-30'.format(y) #以半年及以下为周期返回日数据,以上为周数据pytrends.build_payload(search_list, timeframe=timeframe)df = df.append((pytrends.interest_over_time()).drop(columns='isPartial'))timeframe = '{0}-06-30 {1}-01-01'.format(y,yn) pytrends.build_payload(search_list, timeframe=timeframe)df = df.append((pytrends.interest_over_time()).drop(columns='isPartial'))#2021
for m in range(1,3):timeframe='2020-12-30 2021-02-22'pytrends.build_payload(search_list, timeframe=timeframe)df = df.append((pytrends.interest_over_time()).drop(columns='isPartial'))df.to_excel('googleTrends.xls')

将代码文件导入远程服务器

这里建议使用Xshell作为SSH客户端,因为在Xshell中可以用rz 和 sz命令,轻松和本地计算机实现文件互传。
首先执行安装命令

yum install -y lrzsz

然后在命令行输入rz回车,会出现选择文件的窗口,选择之前编辑好的googleTrends.py文件后,这个文件就保存到远程服务器中了。
然后执行如下命令

python3 googleTrends.py

就成功在远程服务器上运行代码了。运行之后,执行如下命令查看googleTrends.xls的位置。

find / -name googleTrends.xls

会发现该文件在 /root/googleTrends.xls下
接着执行如下命令将文件复制到本地计算机。

sz /root/googleTrends.xls

一番操作之后,Google Trends的数据就保存到本地计算机啦!

数据处理

拿到数据之后并不能直接用。这里得先了解Google Trends数据的特点。
Google Trends的热度值在0-100之间,是一个相对值,和时间段的选择相关。对于同一个日期,比如2021.2.14这天,爬取2021.1.1-2021.2.20时间段和2020.10.14-2020.2.20时间段,得到的2021.2.14这一天的热度值是不同的。
所以,我在爬取数据的时候,在前后两个时间段之间设置了重复天数,比如2013.01.01-2013.06.01 和 2013.06.01-2014.01.01。
这样,就可以以某一时间段为基准,通过比例换算,将所有数据纳入一个标准了。

Google Trends爬虫相关推荐

  1. Google新动作频出 Google Trends发布

    在solidot看到一篇文章说GOOgle Trends在10号发布了.这是Google推出的另一个分析工具,它能够告诉你某个特定关键词在Google被搜索的频率和相关统计数据.你可以同时比较最多5个 ...

  2. 谷歌趋势 Google Trends 实战使用技巧

    谷歌趋势分析是每一个做谷歌SEO的人必备的工作技能,最简单有效的工具就是Google Trends,现在我们演示这款工具的实战使用技巧,本文章讲述从入门到实战的多个使用技巧. 什么是谷歌趋势Googl ...

  3. Python财务分析-Pandas复制Google Trends

    复制利用谷歌趋势量化金融市场的交易行为 这是发表于<自然>的一篇论文: Quantifying Trading Behavior in Financial Markets Using Go ...

  4. Google发布Google Trends(谷歌趋势)中文版

    2006年7月31日,北京,Google(谷歌)今天宣布,Google Trends(谷歌趋势)中文版正式上线.Google Trends(谷歌趋势)是今年5月Google推出的一款基于搜索日志分析的 ...

  5. cve 爬虫_好用的Google漏洞爬虫:Google Mass Explorer

    *本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担. 这是一款基于谷歌搜索引擎的自动化爬虫. 爬虫介绍 爬虫大体机制就是:先进行一次谷歌 ...

  6. python抓取谷歌指数(Google Trends)

    过去7天的数据链接:https://trends.google.com/trends/api/widgetdata/multiline?hl=zh-CN&tz=-480&req={&q ...

  7. Google的爬虫家族[Spider]

    原文:http://hi.baidu.com/shichunqi/blog/item/65a8881334d81f04c83d6d42.html Google爬虫是连接互联网和你的查询需求之间的第一座 ...

  8. google学术爬虫

    代码 from bs4 import BeautifulSoup #网页解析,获取数据 import re #正则表达式 import urllib.request,urllib.error #指定U ...

  9. 数学之美系列六 -- 图论和网络爬虫 (Web Crawlers)

    数学之美系列六 -- 图论和网络爬虫 (Web Crawlers) [离散数学是当代数学的一个重要分支,也是计算机科学的数学基础.它包括数理逻辑.集合论.图论和近世代数四个分支.数理逻辑基于布尔运算, ...

最新文章

  1. Pandas基础复习-DataFrame
  2. 【模型开发】风控评分模型开发流程
  3. 通俗说基于Yarn的Map-Reduce过程
  4. ajaxfileupload上传显示图片_有了这个AI图片转换器,风景照片秒变二次元动画
  5. 【笔记】springboot+spring security登录流程实现
  6. 制作cab文件(Windows自带的makecab)
  7. python的networkx 算法_python图算法库Networkx笔记 - Node and Centrality
  8. 莫烦python学习笔记之全局,局部变量
  9. netperf-2.7.0 交叉编译
  10. 利用selenium webdriver下载不同类型的文件(pdf,txt等等)
  11. PyCharm 的调试功能
  12. javascript编码调试环境-ide和调试工具
  13. selenium使用代理IP
  14. 印度舞曲吉米来吧(中文版)铃声 印度舞曲吉米来吧(中文版)手机...
  15. WIN10更改不了锁屏壁纸
  16. 【如何学习CAN总线测试】——OSEK网络管理测试
  17. 什么是字长(百度百科)
  18. C 语言时间函数 秒 毫秒 微秒
  19. 【TensorFlow】使用AlexNet网络对图片进行识别分类
  20. Nvidia GTC China 19 keynote

热门文章

  1. EtherCAT与RTEX驱动器轴回零的配置与实现
  2. Fabric v2.3 手动模拟(一) - 测试网络./network.sh up命令创建自己的网络
  3. 关于Flappy bird中水管与小鸟的碰撞
  4. openharmony中控屏开发:4.小型系统中控屏设计概述
  5. C语言将16进制的数转换为字符串的方法(改进)
  6. jdk各种版本下载地址,直接下载,无需登录
  7. 微机原理与接口技术【2】
  8. 温度传感器种类及工作原理
  9. Laravel框架安装时遇到的坑
  10. Lombok_刘锋的博客