人力资源部漂亮的小MM,跑来问我:老陈,数据分析和爬虫究竟是关系呀?说实在的,我真不想理她,因为我一直认为这个跟她的工作关系不大,可一想到她负责我负责部门的招聘工作,我只好勉为其难地跟她说:数据分析,吃里,爬虫,爬外,合在一起就是吃里爬外。

大数据时代,要想进行数据分析,首先要有数据来源,单靠公司那几条毛毛雨(数据),分析个寂寞都不够,唯有通过学习爬虫,从外部(网站)爬取一些相关、有用的数据,才能让老板进行商业决策时的有据可依,而你,亦是老板。

一提到老板,漂亮的小MM,兴奋得不得了,马上大声问:你们IT界,最帅的是不是就是那个搞搜索引擎的李老板?

我尽管有点不服气,有点不开心,但我能怎么得,毕竟在网络爬虫方面,他(李老板)的技术比确实强。他懂得用爬虫技术,每天在海量互联网信息中进行爬取,爬取优质的信息并收录在他设定的数据库中。当用户在搜索引擎中,输入关键字时,引擎系统将对关键词进行数据分析处理,从收录的网页中找出相关网页,按照一定的排名规则排序并将结果展现给用户。

一想到排名赚到的money,李老板一分都不给我,我就跟人力MM说:好了,不跟你扯犊子了,我要跟我的老铁说网络爬虫的原理了,你个吃里爬外的家伙,见你的老板去吧。

1. 爬虫是什么

网络爬虫又称网络蜘蛛、网络蚂蚁、网络机器等,它按照我们制定的规则,在网络上爬取数据。爬到的结果中会有HTML代码、JSON数据、图片、音频或视频。程序员根据实际要求,对数据进行过滤,提取其中有用的,进行存储。

说白点,就是用Python编程语言模拟浏览器,访问指定网站,对其返回结果,按规则进行筛选并提取自己需要的数据,存放起来使用,以供使用。

看过我《第10天 | 12天搞定Python,文件操作 》和《第11天 | 12天搞定Python,数据库操作》的老铁,应该知道,数据常存在文件或数据库中。

2. 爬取流程

用户通过浏览器访问网络数据的方式:打开浏览器->输入网址->浏览器提交请求->下载网页代码->解析成页面。

爬虫编程,指定网址,模拟浏览器发送请求(获取网页代码)->提取有用的数据->存放于文件或数据库中。

爬虫编程,推荐用Python,是因为Python爬虫库简单易用,在Python内置环境中的,就可以满足大多数功能。它可以:

(1) 用http库向目标站点发起请求,即发送一个Request(包含请求头和请求体等);

(2) 对服务器返回的Response,用内置的库(html、json、正则表达式)就进行解析

(3) 将所需数据存储到文件或数据库当中。

如果Python内置的库不够用的话,可以用pip install 库名,快速下载第3方库并进行使用。

3. 爬点定位

在编写爬虫代码的过程中,经常需要指定爬取的节点或路径。如果我告诉你,Chrome浏览器,就可以快速获取节点或路径的话,你会不会马上看一下电脑是否安装了?

会的话,那就对了,不会的,赶紧去安装吧。

在页面中,按下键盘F2键,可显示源代码。鼠标选中你要获取的节点,右键【检查】就可定位到代码中,右键代码,选择【Copy】-【Copy Selector 】或【Copy XPath】便可复制节点或路径的内容。

好了,有关爬虫原理的内容,老陈讲完了,如果觉得对你有所帮助,希望老铁能转发点赞,让更多的人看到这篇文章。你的转发和点赞,就是对老陈继续创作和分享最大的鼓励。

一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,可关注今日头条:老陈说编程。我将分享Python,前端(小程序)和App方面的干货。关注我,没错的。

#Python##网络爬虫##程序员##爬虫#

第1天|12天搞定Python网络爬虫,吃里爬外?的更多相关文章

  1. 第4天 | 12天搞定Python,基础语法(下)

    为了方便你的学习,减轻负重,我特意将基础语法分成上下两部分.希望你喜欢这种方式,如果不喜欢,你可以跟我说,反正我是不会改的,哈哈~~. 如果上部分,你还没看的话,先去看<第4天 | 12天搞定P ...

  2. 第10天 | 12天搞定Python,文件操作(超详细)

    在开发系统的过程中,经常会用到XML存储和传输数据,XML是一种用于标记电子文件使其具有结构性的标记语言,在博客中经常会见到. JSON是一种轻量级的数据交换格式,常被用在后端和前端的数据交互上,如你 ...

  3. 第12天 | 12天搞定Python,让excel飞起来

    学了10多天Python基础知识了,是时候来点硬货了,看过<第1天 | 12天搞定Python,告诉你有什么用?>的老铁都知道,Python可用的领域挺多的.只是我长期待在企业,所以只能说 ...

  4. 第1天 | 12天搞定Python,告诉你有什么用?

    掌握多一门编程语言,多一种选择,多一份机遇,更何况学的是人见人爱,花见花开的Python语言.它目前可占据编程语言排行榜的第3名,是名副其实的"探花郎",无论用它做什么(网络爬虫. ...

  5. 12天搞定Python,基础语法(上)

    不知你是否见过建楼房的过程,没有的话,找个时间去瞧一瞧,看一看.看过之后,你就会明白.建楼房,只有打好地基之后,才能在砌墙,建的楼层越高,打的地基就越深. 学编程也一样,要想得心应手的应用,得先打好地 ...

  6. 第3天 | 12天搞定Python,用PyCharm编写代码

    有了运行环境还不够,在程序的江湖里,还得有一把趁手的"兵器". 工欲善其事,必先利其器,在进行Python开发时,可选择 IDE挺多的,其中,以PyCharm. Eclipse+P ...

  7. 第3天 | 12天搞定Python,用VSCode编写代码

    Visual Studio Code (简称 VS Code), 是一款免费并且开源的现代化轻量级代码编辑器,支持语法高亮.智能代码补全.自定义热键.括号匹配.代码片段等特性,并针对网页开发做了优化. ...

  8. 第2天 | 12天搞定Python,运行环境(超详细步骤)

    倘若有人告诉你,他在学习Python编程,却没有安装运行环境,那你赶紧叫他滚,并离他远点,因为他在欺骗你的感情. 没有安装运行环境,程序根本无法跑起来,对错不能知根知底,试问是在学编程,还是在跟空气对 ...

  9. 转载 12步轻松搞定python装饰器

    作者: TypingQuietly 原文链接: https://www.jianshu.com/p/d68c6da1587a 呵呵!作为一名教python的老师,我发现学生们基本上一开始很难搞定pyt ...

随机推荐

  1. 一文读懂MySQL的索引结构及查询优化

    回顾前文: 一文学会MySQL的explain工具 (同时再次强调,这几篇关于MySQL的探究都是基于5.7版本,相关总结与结论不一定适用于其他版本) MySQL官方文档中(https://dev.m ...

  2. 从Class源码看反射

    日常敲码中,如果想要在程序运行阶段访问某个类的所有信息,并支持修改类的状态或者行为的话,肯定会用到反射,而反射靠的就是Class类.Java的动态代理也用到了这个东西,所以了解其基本操作在苦逼的CRU ...

  3. 容器云平台No.5~企业级私有镜像仓库Harbor V2.02

    镜像仓库 仓库,顾名思义,就是存放东西的地方,Docker仓库,理所当然,就是存放docker镜像的地方了. Docker仓库分公有仓库和私有仓库.共有仓库有hub.docker.com.gcr.io ...

  4. 【转】postgreSQL​之autovacuum性能问题分析(一)

    最近笔者在项目中遇到postgreSQL的性能问题,所以计划在公众号里写一个系列文章去追踪记录这些问题以及分析过程或解决方法. 本文主要是关于postgreSQL的autovacuum的问题.可能很多 ...

  5. linux学习(四)Linux 文件基本属性

    一.引言 Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限. 为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定. 在Lin ...

  6. MFC DLL中如何响应PreTranslateMessage消息

    最近项目中使用到MFC,由于工程是DLL的,在使用ToolTip时碰到非模态对话框无法显示的问题.查了一番资料,发现原因是由于:虽然MFC Regular DLL派生了CWinApp类,并有一个the ...

  7. 数据结构 - 堆(Heap)

    数据结构 - 堆(Heap) 1.堆的定义 堆的形式满足完全二叉树的定义: 若 i < ceil(n/2) ,则节点i为分支节点,否则为叶子节点 叶子节点只可能在最大的两层出现,而最大层次上的叶 ...

  8. 微服务分布式电商项目学习笔记(三)---- docker介绍安装以及使用docker安装软件(2020/7/10)

    其实在介绍docker的使用和安装之前应该还要介绍虚拟机的安装与配置,以及虚拟网络的配置,但是我使用的是vmware,而视频课使用的是vagrant,这一块我简看的,因此没有过多的介绍,至于vmwar ...

  9. Android Handler 分析学习

    一.Handler简介 Handler 是 Android 中用于线程间交互的机制.与其相关的概念有 Thread.Looper.Runnable.Message.MessageQueue 等. Go ...

  10. mybatis基础使用

    MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis .20 ...