我们开始来谈谈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请求来取得数据。

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

最新文章

  1. C# 修改电脑DNS和IP方法
  2. mvvm 模式
  3. 基于OpenMP的矩阵乘法实现及效率提升分析
  4. Edit Control的Enter响应函数
  5. C++中的虚函数(类的向上转换,和向下转换)
  6. linux sort 命令详解(转 )
  7. 用twisted 做一个日志收集系统
  8. A题笔记(14)
  9. CDN技术详解及实现原理
  10. poj 1797 Heavy Transportation(最大生成树)
  11. python笔记:#013#高级变量类型
  12. [Swift]LeetCode147. 对链表进行插入排序 | Insertion Sort List
  13. 【NPOI】通过NPOI从内存流中创建EXCEL
  14. vue PC端项目中解决userinfo问题
  15. Python_计算文件夹大小
  16. 会使用基本的Render函数后,就会想,这怎么用 v-for/v-if/v-model;我写个vue Render函数进阶
  17. 自动化测试-2.seleniumIDE
  18. Ubuntu修改时间时区
  19. VarIsOrdinal,VarIsFloat,VarIsNumeric判断数字
  20. Update Node.js Package.json

热门文章

  1. Gearman1.1.12安装与启动
  2. Vue scrollBehavior 滚动行为
  3. zabbix 监控mysql状态 -Windows
  4. FTP两种工作模式:主动模式(Active FTP)和被动模式
  5. 张高兴的 .NET Core IoT 入门指南:(三)使用 I2C 进行通信
  6. 洛谷 - P1801 - 黑匣子 - 对顶堆
  7. android内存溢出 java.lang.OutOfMemoryError
  8. USACO Training 3.3 商店购物 By cellur925
  9. Centos 7.x 配置Gitlab
  10. kettle 导入xml 资源文件