我们开始来谈谈python的爬虫。

1,什么是爬虫:

  网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。互联网犹如一个大蜘蛛网,我们的爬虫就犹如一个蜘蛛,当在互联网遇到所需要的资源,我们就会爬取下来,即为爬虫是一个请求网站并且提取数据的自动化程序。

2,下面我们来提到两个名词:

  1)请求,request即为我们的请求,当我们在浏览器内输入网址,敲击回车时,这时浏览器就会发送消息给该网址所在的服务器,这个过程叫做HTTP Request

  2)响应,response即为我们的响应,服务器在接收到浏览器发送的消息后,能够根据浏览器发送消息的内容做出相应的处理,然后把消息回传给浏览器。这个过程就做HTTP Response。浏览器收到服务器的Response信息后,会对信息进行处理,然后展示。

3,Request中包含什么?

  1)请求方式,请求方式主要包含get,post,另外还有put,head,delete,options等,但我们常用的、常见的还是get和post请求。

    get请求:get请求方式所有的参数都包含在URL地址里,get请求可以直接在浏览器地址栏内输入URL地址,然后直接访问。

    post请求:比get方式多包含一个formdata数据,且参数没有在URL地址内。不可以直接在地址栏访问,需要构造一个form表单,进行提交访问。

    同时post请求所有参数不显示地址栏内,相对于get请求来说更安全。

  2)请求URL,URL全称统一资源定位符,如一个网页文档、一张图片、一个视频等都可以用URL唯一来确定。

  3)请求头,包含请求时的头部信息,如User-Agent、Host、Cookies等信息,请求头是一个很重要的参数,在很多爬虫里需要设置请求头信息,

    一般权限验证,浏览器类型等信息,如下图所示:

    

  4)请求体,请求时额外携带的数据,如表单提交时的表单数据,一般来说get方式请求时,都没有请求体。

4,Response中包含什么?

  1)响应状态,有多种响应状态,如200代表成功,404找不到页面,500服务器错误

    扩展:

      -1xx :报告的 -请求被接收到,继续处理

      -2xx :成功 - 被成功地接收(received),理解(understood),接受(accepted)的动作 。

      -3xx :重发 - 为了完成请求必须采取进一步的动作。

      -4xx :客户端出错 - 请求包括错的语法或不能被满足。

      -5xx :服务器出错 - 服务器无法完成显然有效的请求。

  2)响应头,如内容类型、内容长度、服务器信息、设置Cookie等等信息。如图所示:

    

  3)响应体,最主要的部分,包含了请求资源的内容,如网页HTML,图片,二进制数据(视频,图片等)等信息。

    我们爬取的数据大部分就是从这个部分获取的

5,我们所需要的环境和资源

  1)python环境,最好是python3,python2在2020年就不再维护了,语法还是有一定差异的,我建议使用python3。

  2)redis,mongo分关系型数据库,安装过程自行百度。(后期会有专门的博客来说明讲解非关系型数据库)。

  3)scrapy环境,pip install scrapy即可安装。

  4)Urllib库,Requests库,BeautifulSoup库,PyQuery,Selenium和与其相关联的环境配置(后面我们会逐个来说明每一个库和其操作使用方法)。

总结:爬虫是一个请求网站并且提取数据的自动化程序。有的是通过原生html标签就可以获取到数据,则有的需要通过解析ajax请求来取得数据。

             第一次写博客,还是有点点紧张,我也是现学现卖的,欢迎斧正。谢谢

python爬虫---从零开始(一)初识爬虫的更多相关文章

  1. python爬虫之路——初识爬虫原理

    爬虫主要做两件事 ①模拟计算机对服务器发起Request请求 ②接收服务器端的Response内容并解析,提取所需的信息 互联网页面错综复杂,一次请求不能获取全部信息.就需要设计爬虫的流程. 本书主要 ...

  2. python爬虫系列之初识爬虫

    前言 我们这里主要是利用requests模块和bs4模块进行简单的爬虫的讲解,让大家可以对爬虫有了初步的认识,我们通过爬几个简单网站,让大家循序渐进的掌握爬虫的基础知识,做网络爬虫还是需要基本的前端的 ...

  3. python爬虫之路——初识爬虫三大库,requests,lxml,beautiful.

    三大库:requests,lxml,beautifulSoup. Request库作用:请求网站获取网页数据. get()的基本使用方法 #导入库 import requests #向网站发送请求,获 ...

  4. [转]让你从零开始学会写爬虫的5个教程(Python)

    让你从零开始学会写爬虫的5个教程(Python)   写爬虫总是非常吸引IT学习者,毕竟光听起来就很酷炫极客,我也知道很多人学完基础知识之后,第一个项目开发就是自己写一个爬虫玩玩. 其实懂了之后,写个 ...

  5. Python 爬虫3——第一个爬虫脚本的创建

    在进行真正的爬虫工程创建之前,我们先要明确我们所要操作的对象是什么?完成所有操作之后要获取到的数据或信息是什么? 首先是第一个问题:操作对象,爬虫全称是网络爬虫,顾名思义,它所操作的对象当然就是网页, ...

  6. python Cmd实例之网络爬虫应用

    python Cmd实例之网络爬虫应用 标签(空格分隔): python Cmd 爬虫 废话少说,直接上代码 # encoding=utf-8 import os import multiproces ...

  7. Python爬虫与数据分析之爬虫技能:urlib库、xpath选择器、正则表达式

    专栏目录: Python爬虫与数据分析之python教学视频.python源码分享,python Python爬虫与数据分析之基础教程:Python的语法.字典.元组.列表 Python爬虫与数据分析 ...

  8. python爬虫随笔(2)—启动爬虫与xpath

    启动爬虫 在上一节中,我们已经创建好了我们的scrapy项目,看着这一大堆文件,想必很多人都会一脸懵逼,我们应该怎么启动这个爬虫呢? 既然我们采用cmd命令创建了scrapy爬虫,那就得有始有终有逼格 ...

  9. 2.Python爬虫入门二之爬虫基础了解

    1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.想抓取什么?这个由你来控制它咯. ...

  10. Python爬虫进阶一之爬虫框架概述

    综述 爬虫入门之后,我们有两条路可以走. 一个是继续深入学习,以及关于设计模式的一些知识,强化Python相关知识,自己动手造轮子,继续为自己的爬虫增加分布式,多线程等功能扩展.另一条路便是学习一些优 ...

随机推荐

  1. 【旧文章搬运】Windows句柄分配算法(二)

    原文发表于百度空间,2009-04-04========================================================================== 在创建句柄 ...

  2. 链表中获取倒数第K个结点

    /* * 链表中查找倒数第K个结点.cpp * * Created on: 2018年5月1日 * Author: soyo */ #include<iostream> using nam ...

  3. View Controller Programming Guide for iOS---(二)---View Controller Basics

    View Controller Basics Apps running on iOS–based devices have a limited amount of screen space for d ...

  4. 任务37:生成 JWT Token

    实现给用户办法token 默认是可以访问valuesController的,返回的状态是200 http://localhost:5429/api/values 返回的状态码是200 把ValuesC ...

  5. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时5

    课时5 数据驱动的图像分类方式:K最邻近与线性分类器(下) 在参数化方法中,我们要做的是构造一个函数,输入一张图片,对每一类输出一个数值.对任意一张图片,我们会计算出它到底属于哪一类.这些参数有时候也 ...

  6. Gradle技术之四 - Gradle的Task详解

    1 Gradle的Task详解 1 Task定义和配置 2 Task的执行 3 Task的依赖和执行顺序 4 Task类型 5 Task结合gradle的生命周期 6 Task实战 1.1 Task定 ...

  7. Moctf--没时间解释了

    记录一道简单的题目. 打开后就张这个样子,,然后看到url为index2.php---->所以我们把它改为index.php(用burp抓包才行,这是一个302跳转). 看到它提示我们要uplo ...

  8. POJ1458【最长公共子序列】

    基础DP. #include <iostream> #include <stdio.h> #include <string.h> #include <stac ...

  9. bzoj 3238: [Ahoi2013]差异【SAM+树形dp】

    首先只有lcp(i,j)需要考虑 因为SAM的parent树是后缀的前缀的最长公共后缀(--),所以把这个串倒过来建SAM,这样就变成了求两个前缀的最长公共后缀,长度就是这两个前缀在parent树上的 ...

  10. bzoj 2806: [Ctsc2012]Cheat【广义SAM+二分+dp+单调队列】

    把模板串建一个广义SAM 然后在线查询,每次在SAM上预处理出一个a[i]表示i位置向前最多能匹配多长的模板串 二分答案L,dp判断,设f[i]为·~i有几个匹配,转移显然是f[i]=max{f[i- ...