写在前面的话:

  折腾爬虫也有一段时间了,从一开始的懵懵懂懂,到现在的有一定基础,对于这一路的跌跌撞撞,个人觉得应该留下一些文字性的东西,毕竟好记性不如烂笔头,而且毕竟这是吃饭的家伙,必须用心对待才可以,从今天起,我将会把关于爬虫的东西进行一个整理,以供后期的查阅,同时也想将自己的一点点经验分享给大家。

  关于爬虫,在我们了解什么是爬虫之前,首先应该清楚为什么会需要爬虫。随着互联网的全球化,人们可以非常方便的通过网络来获取信息,但是,起初获取信息的方式就是人为的浏览、记录。但是当人们需要获取大量的信息时,人工方式就显得效率极其低下,这时,有些人就编写了一些程序放在互联网上运行,这些程序会按照人们编写的逻辑来快速的在互联网上采集信息,省事又省力,这种程序就叫做爬虫,也叫做蜘蛛(spider)。所以我们知道了,爬虫其实就是人为编写的一些程序,也也可以称之为脚本。

  爬虫是从哪儿来分析采集数据呢?当然是从网页上,比如人来获取信息是输入了关键字来搜索,然后点击想要看的网页,或者直接输入某一个网址来获取某一个页面的,那么爬虫呢?爬虫是如何获取页面的呢? 说白了,爬虫也是通过技术手段来模拟人的操作来获取页面的过程。爬虫先是模拟人的操作来获取到目标页面,然后再对目标页面进行分析,从而采集到人们刚兴趣的信息。 主要原理如下图:

  

  从上图我们了解到了爬虫的基本原理,但是请大家注意,上图中有两个过程我标红了,为什么呢?因为在整个爬取数据的过程中,这两个步骤是非常非常重要的,而且这也是爬虫与反爬相互博弈的地方。

  从上图我们可以了解到,爬虫的运行,主要分为四个过程:

  1. 获取目标url

  2. 获取网页

  3. 页面解析、提取信息

  4. 数据持久化

  不过对于我们来说,在编写爬虫之前,我们肯定已经知道了想要获取的网站地址,所以第一步我们基本上可以跳过。

  下面的二、三、四步是非常重要的,但是最最重要的还是第二、三步。

  关于第二步:获取网页,我们首先应该掌握两种Python标准库,一种是urllib,另一种是request,这两种库是帮助我们来获取目标网页的,当然还有一些其他的方法,这个我们以后会细细说来。

  对于第三步:解析页面,我们需要掌握集中解析库:Xpath、css选择器‘、正则表达式、Beautiful Soup、pyquery。这些库可以帮助我们从html网页的各种标签中准确的获取到我们想要得到的数据。

  关于第四步:数据的持久化,一般来说数据都会被放到数据库中,常见的数据库如mysql,oracle,MongoDB等等,当然,有时数据量过大也会有专门的文本服务器,图片服务器来存放数据。

好了,啰啰嗦嗦说了这么多,下一篇博客我就会直接从常用的请求库urllib来开始说起。

想了解更多Python关于爬虫、数据分析的内容,欢迎大家关注我的微信公众号:悟道Python

  

python3爬虫之开篇的更多相关文章

  1. Python3爬虫系列:理论+实验+爬取妹子图实战

    Github: https://github.com/wangy8961/python3-concurrency-pics-02 ,欢迎star 爬虫系列: (1) 理论 Python3爬虫系列01 ...

  2. python3爬虫中文乱码之请求头‘Accept-Encoding’:br 的问题

    当用python3做爬虫的时候,一些网站为了防爬虫会设置一些检查机制,这时我们就需要添加请求头,伪装成浏览器正常访问. header的内容在浏览器的开发者工具中便可看到,将这些信息添加到我们的爬虫代码 ...

  3. Python3 爬虫之 Scrapy 核心功能实现(二)

    博客地址:http://www.moonxy.com 基于 Python 3.6.2 的 Scrapy 爬虫框架使用,Scrapy 的搭建过程请参照本人的另一篇博客:Python3 爬虫之 Scrap ...

  4. Python3 爬虫之 Scrapy 框架安装配置(一)

    博客地址:http://www.moonxy.com 基于 Python 3.6.2 的 Scrapy 爬虫框架使用,Scrapy 的爬虫实现过程请参照本人的另一篇博客:Python3 爬虫之 Scr ...

  5. python3爬虫--反爬虫应对机制

    python3爬虫--反爬虫应对机制 内容来源于: Python3网络爬虫开发实战: 网络爬虫教程(python2): 前言: 反爬虫更多是一种攻防战,针对网站的反爬虫处理来采取对应的应对机制,一般需 ...

  6. python3爬虫系列19之反爬随机 User-Agent 和 ip代理池的使用

    站长资讯平台:python3爬虫系列19之随机User-Agent 和ip代理池的使用我们前面几篇讲了爬虫增速多进程,进程池的用法之类的,爬虫速度加快呢,也会带来一些坏事. 1. 前言比如随着我们爬虫 ...

  7. python3爬虫(4)各种网站视频下载方法

    python3爬虫(4)各种网站视频下载方法原创H-KING 最后发布于2019-01-09 11:06:23 阅读数 13608 收藏展开理论上来讲只要是网上(浏览器)能看到图片,音频,视频,都能够 ...

  8. Python3爬虫:(一)爬取拉勾网公司列表

    人生苦短,我用Python 爬取原因:了解一下Python工程师在北上广等大中城市的薪资水平与入职前要求. Python3基础知识 requests,pyquery,openpyxl库的使用 爬取前的 ...

  9. 笔趣看小说Python3爬虫抓取

    笔趣看小说Python3爬虫抓取 获取HTML信息 解析HTML信息 整合代码 获取HTML信息 # -*- coding:UTF-8 -*- import requests if __name__ ...

随机推荐

  1. JSP + JavaBean + Servlet实现MVC设计模式

    1.流程图: 2.代码清单 数据库脚本: DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `userid` ) NOT NULL, `name` ...

  2. spring----对IoC和DI的理解

      学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊不清的,是很难理解的,今天和 ...

  3. 【NLP_Stanford课堂】句子切分

    依照什么切分句子——标点符号 无歧义的:!?等 存在歧义的:. 英文中的.不止表示句号,也可能出现在句子中间,比如缩写Dr. 或者数字里的小数点4.3 解决方法:建立一个二元分类器: 检查“.” 判断 ...

  4. SVN的使用教程(一)

    SVN使用 第一章 配置SVN 请根据下方网址配置SVN: https://blog.csdn.net/daobantutu/article/details/60467185 安装VisualSVN ...

  5. Flask入门文件上传flask-uploads(八)

    1 视图传递多个参数 (1) 普通传参 : 关键字参数传递 return render_template('模板名称.html',arg1=val1,arg2=val2...) (2) 字典传参 : ...

  6. 三个方法教会你win7中IIS7配置php环境

    三个方法教会你win7中IIS7配置php环境.今天静下心来研究了下在win7中使用IIS7配置php环境,其实很简单!跟下面方法做之前,请先确定你的电脑中未安装其它相关环境程序及服务,之前安装过ap ...

  7. 最简单的dockerfile使用教程 - 创建一个支持SSL的Nginx镜像

    什么是dockerfile?简单的说就是一个文本格式的脚本文件,其内包含了一条条的指令(Instruction),每一条指令负责描述镜像的当前层(Layer)如何构建. 下面通过一个具体的例子来学习d ...

  8. 【转载】#443 - An Interface Cannot Contain Fields

    An interface can contain methods, properties, events or indexers. It cannot contain fields. interfac ...

  9. POJ 3070 矩阵快速幂

    题意:求菲波那切数列的第n项. 分析:矩阵快速幂. 右边的矩阵为a0 ,a1,,, 然后求乘一次,就进一位,求第n项,就是矩阵的n次方后,再乘以b矩阵后的第一行的第一列. #include <c ...

  10. 【转】JS模块化工具requirejs教程(二):基本知识

    前一篇:JS模块化工具requirejs教程(一):初识requirejs 我们以非常简单的方式引入了requirejs,这一篇将讲述一下requirejs中的一些基本知识,包括API使用方式等. 基 ...