python爬虫常见的一些面试题

本文涵盖了Python爬虫常见的面试题目,包括爬虫概念、URL定义、Scrapy框架的优缺点、HTTP与HTTPS的区别、GET与POST请求的差异、Scrapy的运行机制、分布式爬虫scrapy-redis、模拟登录方法、Scrapy优点、数据存储方式选择、Python2与Python3区别、生成器、迭代器、装饰器、多线程与多进程、协程、提升Scrapy爬取效率的策略以及网络请求流程和TCP的三次握手与四次挥手。还涉及了反爬策略和Python特殊方法`__new__`与`__init__`的区别,以及HTTP请求和响应的内容组成。
摘要由CSDN通过智能技术生成

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,按某种算法进行排队

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值