在Spark体验开始前需要准备环境和数据,环境的准备可以自己按照Spark官方文档安装。笔者选择使用CDH集群安装,可以参考笔者之前的文章:Cloudera Manager大数据集群环境搭建

至于数据的准备就是本文的主要内容,数据采用python爬虫的方式,爬去上一个月上海的天气数据,参考了https://www.cnblogs.com/haha-point/p/7467221.html,但是因为网站做了反爬虫,研究了一下,发下只要加上header请求就可以规避掉反爬问题。

上海市19年2月的天气可以通过http://lishi.tianqi.com/shanghai/201902.html获取


#encoding:utf-8

import requestsfrom bs4 import BeautifulSoup

url = "http://lishi.tianqi.com/shanghai/201902.html"

if __name__ == '__main__':    target_file = open("weather.txt",'w')

    headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36',               'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',               'Accept-Encoding':'gzip, deflate',               'Accept-Language':'zh-CN,zh;q=0.9,en;q=0.8',               'Cache-Control':'no-cache',                'Cookie':'cityPy=shanghai;  UM_distinctid=1696d7851820-0518fd894ef605-36657905-1aeaa0-1696d7851832da; CNZZDATA1275796416=2105206279-1552318077-https%253A%252F%252Fwww.cnblogs.com%252F%7C1552318077; Hm_lvt_ab6a683aa97a52202eab5b3a9042a8d2=1552319796,1552319840,1552319867; Hm_lpvt_ab6a683aa97a52202eab5b3a9042a8d2=1552322278'               }    response = requests.get(url,headers=headers)    soap = BeautifulSoup(response.text, 'html.parser')    weather_list = soap.select('div[class="tqtongji2"]')    for weather in weather_list:        weather_date = weather.select('a')[0].string.encode('utf-8')        ul_list = weather.select('ul')        i = 0        for ul in ul_list:            li_list = ul.select('li')            str = ""            for li in li_list:                str += li.string.encode('utf-8') + ','            if i != 0:                target_file.write(str + '\n')            i += 1    target_file.close()
 

通过以上代码,把19年2月的天气存到了weather.txt文件中,数据以逗号方式分割

数据准备好了之后,下一篇是Spark基本API的体验

最新文章

  1. CSS与JavaScript的一些问题汇总
  2. 基于VirtualBox安装Ubuntu图文教程
  3. [under the hood]Reduce EXE and DLL Size with LIBCTINY.LIB
  4. [CareerCup] 14.5 Object Reflection 对象反射
  5. Linux下lzop命令安装
  6. Js验证userAgent是否来自手机端
  7. JSF 2 checkboxes example
  8. WCF - 实例与会话
  9. 敏捷软件开发模型--SCRUM
  10. canvas画布实现手写签名效果
  11. java面试一、1.5JVM
  12. [转]JS学习总结-技巧、方法、细节
  13. 开通博客的第一天上传我的C#基础笔记。
  14. linux下vi或vim操作Found a swap file by the name的原因及解决方法
  15. mysql数据库操作指令
  16. JIT与JVM的三种执行模式:解释模式、编译模式、混合模式
  17. Docker查看映射卷报错
  18. Golang OOP、继承、组合、接口
  19. [转]如何解决android模拟器慢的问题
  20. 从零开始玩转JMX(四)——Apache Commons Modeler & Dynamic MBean

热门文章

  1. Java基础教程(14)--嵌套类
  2. CSS starts
  3. Centos7 安装 ActiveMq
  4. lua模块化
  5. Emscripten编译环境搭建--将C和C++编译成JS
  6. vue+vux 父组件控制子组件弹层
  7. EOS开发经验总结——不定期持续更新中
  8. 2018-10-15 21:07:38 c language
  9. 你写的什么垃圾代码让Vsync命令不能及时处理呢?(2)
  10. C#秒转换小时