网络爬虫简介
爬虫简介:
网络爬虫是按照一定的规则,自动的抓取万维网信息的程序或者脚本。
各编程语言编写爬虫程序:
1,PHP:PHP是世界是最好的语言,但他天生不是做这个的,而且对多线程、异步支持不是很好,并发处理能力弱。爬虫是工具性程序,对速度和效率要求比较高。
2,Java:生态圈很完善,是Python爬虫最大的竞争对手。但是Java语言本身很笨重,代码量很大。重构成本比较高,任何修改会导致代码大量改动。爬虫经常要修改采集代码。
3,C/C++:运行效率是无敌的。但是学习和开发成本高。写个小爬虫程序可能要大半天时间。
4,Python:语法优美、代码简洁、开发效率高、支持的模块多。相关的HTTP请求模块和HTML解析模块非常丰富。还有Scrapy和Scrapy-redis框架让我们开发爬虫变得异常简单。
爬虫分类:
1,通用爬虫:通用爬虫是搜索引擎抓取系统的重要组成部分,主要是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。
2,聚焦爬虫:聚焦爬虫指针对某一领域根据特定要求实现的爬虫程序,抓取需要的数据(垂直领域爬取)
聚焦爬虫设计思路:
1,确定爬取的url,模拟浏览器向服务器发起请求;
2,获取响应数据并进行数据解析;
3,将目标数据持久化到本地;
请求:
由客户端向服务器发出的,可以分为四部分内容:
1,请求方法:request method
2,请求网址:request URL
3,请求头:request headers
4,请求体:request
requests请求的8种方法:
1,GET:请求页面,并返回页面内容;
2,POST:用于提交表单数据或上传文件 ,数据包含在请求体中;
3,PUT:从客户端向服务器传送的数据取代指定文档中的内容;
4,DELETE:请求服务器删除指定的页面;
5,HEAD:类似于GET请求,只不过返回的响应中没有具体的内容,用户获取报头
6,CONNECT:把服务器当做跳板,让服务器代替客户端访问其他网页;
7,OPTIONS:允许客户端查看服务器的性能;
8,TRACE:回显服务器收到的请求,主要用于测试或诊断;
GET与POST请求的区别:
1,GET请求中的参数包含在url里面,数据可以在url中看到,而POST请求的url不会包含这些数据,POST数据都是通过表单形式传输的,会包含在请求体中
2,GET请求提交的数据最多只有1024字节,而POST方式没有限制
3,POST请求比GET请求相对安全