当前位置: 首页 > 科技观察

常见的Python爬虫面试题,请面试官唱征服_0

时间:2023-03-19 23:48:51 科技观察

你了解线程的同步和异步吗?线程同步:多个线程同时访问同一个资源,等待资源访问结束,浪费时间,效率低网络的同步和异步?同步:提交请求->等待服务器处理->处理完成后返回。客户端浏览器在此期间不能做任何事情。异步:请求由事件触发->服务器处理(这是浏览器还可以做其他事情)->处理完成的链表用顺序表存储时各有什么优点?1、顺序表存储原理:顺序表存储是将数据元素放入一个连续的内存存储空间中,存取效率高,速度快。但是不能动态增加长度    优点:访问速度高,通过下标直接存储    缺点:1.插入删除比较慢,2.不能增加长度    例如:insertordeletea2.链表存储原理:链表存储是在程序运行过程中动态分配空间。只要内存还有空间,就不会出现存储溢出问题    优点:插入删除速度快,保留了原来的物理顺序。例如:当插入或删除一个元素时,需要改变指针指向    缺点:查找速度慢,因为查找时需要循环链表访问分布使用redis如何处理网络延迟运行系统时出现网络异常?由于网络异常的存在,在分布式系统的请求结果中有一个“三态”的概念,即三种状态:“成功”、“失败”、“超时(未知)”。当“超时”发生时,可以通过发起读取数据的操作来验证RPC是否成功(比如银行系统的做法)另一种简单的做法是在设计分布式协议时将执行步骤设计为可重试,也就是拥有所谓“幂等”的数据仓库是什么?数据仓库是面向主题的、集成的、稳定的反映历史变化和随时间变化的数据集合。主要支持管理者的决策分析。数据仓库收集了企业内外部业务系统数据源、归档文件等一系列历史数据,最终转化为企业需要的战略决策信息。特点:面向主题:根据不同业务进行内容划分;集成特点:由于不同的业务源数据具有不同的数据特??性,业务源数据进入数据仓库时,需要使用统一的编码格式进行数据加载。从而保证数据仓库中数据的唯一性;非易失性:数据仓库通过保存数据不同历史的各种状态,不对数据进行任何更新操作。历史特征:数据保留一个时间戳字段,记录每条数据在不同时间的各种状态。假设有一个爬虫,它从网络获取数据速度很快,但是写入本地的速度很慢。应该使用什么数据结构?    在线求解(o°ω°o)你知道谷歌的无头浏览器吗?无头浏览器就是无头浏览器,没有界面的浏览器。既然是浏览器,那浏览器该有的都有,就是看不到界面。Python中selenium模块中的PhantomJS是一个无界面浏览器(headlessbrowser):它是一个基于QtWebkit的无头浏览器。你知道MySQL数据库的几种引擎吗?    InnoDB:    InnoDB是一个强大的事务存储引擎。该存储引擎已被多家互联网公司采用,为用户操作超大数据存储提供了强大的解决方案。在以下情况下,使用InnoDB是理想的选择:1.更新密集表。InnoDB存储引擎特别适合处理多个并发的更新请求。2.事务。InnoDB存储引擎是支持事务的标准MySQL存储引擎。3.自动容灾。与其他存储引擎不同,InnoDB表可以自动从灾难中恢复。4.外键约束。MySQL中唯一支持外键的存储引擎是InnoDB。5.支持自动增加列的AUTO_INCREMENT属性。一般来说,如果需要事务支持,并且并发读取频率很高,InnoDB是一个不错的选择。MEMORY:使用MySQLMemory存储引擎的出发点是速度。为了获得最快的响应时间,使用的逻辑存储介质是系统内存。虽然将表数据存储在内存中确实提供了高性能,但当mysqld守护程序崩溃时,所有内存数据都会丢失。获得速度也有一些缺点。  Memory存储引擎一般用于以下几种情况:1.目标数据小,访问频率高。数据存放在内存中,所以会造成内存的占用,可以通过参数max_heap_table_size来控制Memory表的大小,设置这个参数,可以限制Memory表的最大大小。2.如果数据是临时的,必须立即可用,可以将其存储在内存表中。3、如果Memory表中存储的数据突然丢失,不会对应用服务造成实质性的负面影响。redis数据库有哪几种数据结构?5种数据结构string使用string的时候,redis**大多数情况下**不会理解或者解析它的意思,不管是用json,xml还是纯文本,在redis看来都一样,就是一个字符串,只是它可以对字符串进行strlen、append等常用操作,但不能对其内容进行进一步操作。它的基本操作命令包括set、get、strlen、getrange和append。