速学爬虫
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浏览器是一个非常亲近开发者的浏览器。可以方便的查看网络请求以及发送的参数。
以上是关于速学爬虫的主要内容,如果未能解决你的问题,请参考以下文章