数据挖掘敲门砖--Python爬虫入门

WHAT

数据挖掘是一门综合的技术,随着Ai的兴起,在国内的需求日渐增大。

数据挖掘的职业方向通常有三个,顺便概要地提一下所需的技能(不仅于此)

  • 数据分析方向:需要数理知识支撑,比如概率论,统计学等
  • 数据挖掘方向:需要懂得主流算法的原理及应用,数据库的原理和操作
  • 科学研究方向:通常是科学家们在深入研究数据挖掘的相关基础理论和算法

但是看完简介,好像和爬虫没什么关系? 接着往下看。

要开始数据挖掘之路,可以先从培养数据分析能力开始。 数据分析的常见步骤是:

  1. 数据准备
  2. 数据观察(找规律)
  3. 数据建模
  4. 数据挖掘(将得到的模型选择合适的算法应用到数据上,验证并得出结论)

WHY

据统计,数据准备占整个数据分析70%的时间. 我们把数据准备的步骤进行细分:

  1. 数据获取: 数据爬虫, 数据仓库
  2. 数据清洗: 去掉无用的数据
  3. 数据整理: 将数据规格化
  4. 数据存储: 先存储为CSV等文件, 最后再将数据进行整理和归档
注释: CSV, 全称Comma-Separated Values,即逗号分割值. 
     是将数据以逗号分隔开的一种纯文本文件, 实际上逗号可以是用其他符号代替.
(若手机显示不全,请右滑)

数据仓库通常是企业级的应用, 对于我们这种初学者获取的难度较高. 而数据爬虫的门槛就很低了, 甚至对于没接触过编程的其他专业的朋友也没有很高的门槛, 这得益于一门语法简单的语言-----Python的流行.

这就是为什么把Python爬虫称作敲门砖的原因啦

HOW

现在我们的目标变成两个, 先会Python, 再会用Python爬虫

Python入门

选择一个合适的教程可以让你少走一些弯路, 在Google上搜索Python教程, 可以收到42万条结果, 排名靠前的菜鸟教程, 廖雪峰的Python教程, 以及简明Python教程, 都是适合入门的免费教程

  • 菜鸟教程 http://www.runoob.com/python/python-tutorial.html
  • 廖雪峰的官方网站 https://www.liaoxuefeng.com/
  • 简明Python教程 https://bop.mol.uno/

感觉没时间先完全系统地学习? 可以先把下面这些Python知识先掌握, 以后再把其他补上!

  • list,dict(列表, 字典):用来序列化你爬的东西
  • 切片:用来对爬取的内容进行分割,生成
  • 条件判断(if等):用来解决爬虫过程中哪些要哪些不要的问题
  • 循环和迭代(for while ):用来循环,重复爬虫动作
  • 文件读写操作:用来读取参数、保存爬下来的内容等

了解爬虫

发送请求——获得页面——解析页面——下载内容——储存内容, 这是通常爬虫的五步走. 再简化一下步骤, 就是 分析目标, 解析页面, 存储内容

  • 分析目标

我们要分析的目标----网页, 它里面的信息只有两种呈现方式:

  1. HTML
  2. JSON

这些信息是我们先向服务器发送请求, 随后服务器返回信息给我们. 有点像我们平时在餐馆吃饭, 你既要POST跟服务器'点菜', 也要GET等服务器'上菜'

你可以学习Python的一个基础库Request http://docs.python-requests.org/zh_CN/latest/user/quickstart.html 通过它来模拟发出POST和GET请求

相关知识连接:(若手机显示不全请右滑)
HTML: 
http://www.w3school.com.cn/h.asp

JSON: 
http://www.runoob.com/json/json-intro.html

GET与POST: 
http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html
  • 解析页面

解析页面有两把利器: 一个是正则表达式, 另一个是选择一些库来帮助我们解析,比如Beautiful Soup

相关知识连接:(若手机显示不全请右滑)
Beautiful Soup: 
https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html

正则表达式:
http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html
  • 存储内容 最后我们通过文件的读写把爬取的内容存储到CSV等文件,或者数据库中. 在一开始, 你也可以选择直接打印到屏幕上,

实践项目

爬取豆瓣电影Top250 https://zhuanlan.zhihu.com/p/20423182

把项目完成之后, 相信你会对爬虫有更好的理解.

欢迎大佬指出错误, 欢迎技术交流, QQ:994342122


今日作者: 光光同学_

不爱看电影的摄影师不是好的程序员

原文发布于微信公众号 - 程序员的碎碎念(gh_53e607dd4782)

原文发表时间:2018-01-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏开发与安全

在腾讯实习的那段日子:不要在难受的时候选择 '逃避/离开'

时间过得很快,从2014.6.5入职实习到2015.1.5已经是7个月的时间了,在这边还是学到了很多东西,遇到的人大多数比较nice。中间拿到了留任offer,...

2340
来自专栏开源优测

[大数据测试]ETL测试或数据仓库测试入门

概述 在我们学习ETL测试之前,先了解下business intelligence(即BI)和数据仓库。 什么是BI? BI(Business Intell...

4216
来自专栏喔家ArchiSelf

回顾Bob大叔的简洁架构

Robert Martin 就是我们常说的Bob大叔,是码界的骨灰级人物了,在4年前提出了所谓的简洁架构,值得回顾反思一下,看看是否可以借鉴到微服务中呢?

952
来自专栏养码场

一位资深Java的阿里系公司实战面试经验,套路还是面试官的多

占小狼:一位奋斗在魔都的资深Java开发。去年6月在简书上发第一篇技术文章,已坚持发表76篇技术文章,粉丝数突破4000。

2387
来自专栏Python中文社区

用Python玩转微信的正确姿势!

0. itchat 最近研究了一些微信的玩法,我们可以通过网页版的微信微信网页版,扫码登录后去抓包爬取信息,还可以post去发送信息。 然后发现了itchat这...

5958
来自专栏开源优测

[大数据测试]ETL测试或数据仓库测试入门

概述 在我们学习ETL测试之前,先了解下business intelligence(即BI)和数据仓库。 什么是BI? BI(Business Intelli...

2884
来自专栏开源优测

[大数据测试]ETL测试或数据仓库测试入门

概述 在我们学习ETL测试之前,先了解下business intelligence(即BI)和数据仓库。 什么是BI? BI(Business Intell...

4146
来自专栏禅林阆苑

USTC高级软件工程课程学习心得 【原创】

USTC高级软件工程课程学习心得 Write By CS逍遥剑仙 我的主页: www.csxiaoyao.com GitHub: github...

3446
来自专栏csxiaoyao

USTC高级软件工程课程学习心得

38610
来自专栏斑斓

软件系统的稳定性

软件系统的稳定性,主要决定于整体的系统架构设计,然而也不可忽略编程的细节,正所谓“千里之堤,溃于蚁穴”,一旦考虑不周,看似无关紧要的代码片段可能会带来整体软件系...

1.1K6

扫码关注云+社区

领取腾讯云代金券