速学爬虫

Posted amazingygy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了速学爬虫相关的知识,希望对你有一定的参考价值。

爬虫前奏

 爬虫实例:

  1.搜索引擎(百度、谷歌、360搜索等)。

  2.伯乐在线。

  3.惠惠购物助手。

  4.数据分析与研究(数据冰山知乎专栏)。

  5.抢票软件等。

 什么是网络爬虫:

  1.通俗理解:爬虫是一个模拟人类请求网站行为的程序,可以自动请求网页、并将数据抓取下来,然后使用一定的规则提取有价值的数据。

  2.专业介绍:百度百科。

 通用爬虫和聚焦爬虫:

  1.通用爬虫:通用爬虫是搜索引擎抓取系统(百度、谷歌、搜狗等)的重要组成部分。主要是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。

  2.聚焦爬虫:是面向特定需求的一种网络爬虫程序,他与通用爬虫的区别在于:聚焦爬虫在实施网页抓取的时候会对内容进行筛选和处理,尽量保证只抓取与需求相关的网页信息。

 为什么用python写爬虫程序:

  1.php:PHP大多用于网页开发,对多线程、异步支持不是很好,并发处理能力弱。爬虫是工具性程序,对速度和效率要求比较高。

  2.Java:生态圈很完善,是python爬虫最大的竞争对手。但Java语言本身很笨重,代码量很大,重构成本比较高,任何修改会导致代码大量改动,而爬虫经常要修改采集代码。

  3.C/C++:运行效率是无敌的,但学习和开发成本高,写爬虫程序可能要很长时间。

  4.python:语法优美、海马简洁、开发效率高、支持的模块多。相关的HTTP请求模块和html解析模块非常丰富。还有Scrapy和Scrapy-redis框架让我们开发爬虫变得异常简单。

 准备工具:

  1.python3.6开发环境。

  2.pycharm 2017 professional版。

  3.虚拟环境“virtualenv/virtualenvwrapper”。

http协议和chrome抓包工具:

 什么是http和https协议:

  HTTP协议:全称是HyperText Transfer Protocal,中文意思是超文本传输协议,是一种发布和接受HTML页面的方法。服务器端口号是80端口。

  HTTPS协议:是HTTP协议的加密版本,在HTTP下加入了SSL层,服务器端口号是443端口。

 在浏览器中发送一个http请求的过程:

  1.当用户在浏览器的地址栏中输入一个URL并按回车键之后,浏览器会向HTTP服务器发送HTTP请求,HTTP请求主要分为“get”和“post”两种方法。

  2.当我们在浏览器输入URL http://www.baidu.com 的时候,浏览器发送一个request请求去截获 http://www.baidu.com 的html文件,服务器把request文件对象发送回给浏览器。

  3.浏览器分析request中的html,发现其中引用了很多其他文件,比如lmages文件,css文件,js文件。浏览器会自动再次发送request去获取图片,css文件,或者js文件。

  4.当所有的文件都下载成功后,网页会根据HTML语法结构完整的显示出来。

 url详解:

  url是统一资源定位符。

  一个url由以下几部分组成:scheme://host:port/path/?query-string=xxx#anchor

  scheme:代表的是访问的协议,一般为http或者http以及ftp等。

  host:主机名、域名。

  port:端口号。访问网站时,浏览器默认使用80端口。

  path:查找路径。

  query-string:查询字符串。

  anchor:锚点,后台一般不用管,前端用来做页面定位。

  在浏览器中请求一个url,浏览器会对这个url进行一个编码,除英文字母、数字和部分符号外,其他的全部使用百分号+十六进制码值进行编码。

 常用的请求方法:

  在http协议中,定义了8种请求方法。常用两种:get请求和post请求。

  get请求:请求指定的页面信息,并返回实体主体。只从服务器获取数据,并不会对服务器资源产生任何影响。

  post请求:向指定资源提交数据进行处理请求,数据包含在请求体中,POST请求可能会导致新的资源的建立或已有资源的修改。

 请求头常见参数:

  1.user-agent  2.referer  3.cookie

 常见响应状态码:

  1.200:请求正常,服务器正常的返回数据。

  2.301:永久重定向。

  3.302:临时重定向。

  4.400:请求的url在服务器上找不到。

  5.403:服务器拒绝访问,权限不够。

  6.500:服务区内部错误。

 chrome抓包工具:

  chrome浏览器是一个非常亲近开发者的浏览器。可以方便的查看网络请求以及发送的参数。

 

以上是关于速学爬虫的主要内容,如果未能解决你的问题,请参考以下文章

Python三十个常见的脚本汇总

15《Python 原生爬虫教程》爬虫和反爬虫

Python爬虫入门:爬虫基础了解

Python爬虫|网络爬虫简介

Python爬虫|网络爬虫简介

Python爬虫|网络爬虫简介