1. 什么是爬虫
- 网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。
2. 什么是URL
- URL,即统一资源定位符,也就是我们说的网址,统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的 URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
3. Scrapy的优缺点
-
优点:scrapy 是异步的, 对于固定单个网站的爬取开发,有优势
-
缺点:基于 python 的爬虫框架,扩展性比较差,不够灵活.
4. HTTP和HTTPS的区别
-
http免费, https 协议需要到 ca 申请证书,一般免费证书很少,需要交费;
-
http 是超文本传输协议,信息是明文传输,https 则是具有安全性的 ssl 加密传输协议;
-
http 和 https 使用的是完全不同的连接方式用的端口也不一样,前者是 80,后者是 443;
-
http的连接很简单,是无状态的;HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
5.HTTPS如何进行数据传输
- HTTPS 其实就是在 HTTP 跟 TCP 中间加多了一层加密层 TLS/SSL。SSL 是个加密套件,负责对 HTTP 的数据进行加密。TLS 是 SSL 的升级版。现在提到 HTTPS,加密套件基本指的是 TLS。原先是应用层将数据直接给到 TCP (是一种面向连接的、可靠的、基于字节流的传输层通信协议)进行传输,现在改成应用层将数据给到TLS/SSL,将数据加密后,再给到 TCP 进行传输。
6. get和post请求的区别
get请求和post请求都是TCP链接,本质上并无区别, 但是由于HTTP的规定和浏览器/服务器的限制导致他们在应用过程中体现有所不同:
-
get请求能够被缓存,post不能
-
get请求会被保存到浏览器的浏览记录里,post不能
-
get请求的url可以保存为书签,post不能
-
get请求有长度限制,post没有
-
get产生一个TCP数据包(把http header和data一并发送出去,服务器响应200(返回数据));post产生两个TCP数据包(浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据))。
7. Scrapy框架的运行机制
scrapy 是一个快速(fast)、高层次(high-level)的基于 python 的 web 爬虫构架,用于抓取 web 站点并从页面中提取结构化的数据。scrapy 使用了 Twisted异步网络库来处理网络通讯
-
spider将想要爬取的url的request对象传递给engine
-
engine将request对象传递给scheduler,按某种算法进行排队