第1题: 如何解决验证码的问题,用什么模块,听过哪些人工打码平台?
PIL、pytesser、tesseract模块html
平台的话有:(打码平台特殊,不保证时效性)python
第2题: ip 被封了怎么解决,本身作过 ip 池么?
关于 ip 能够经过 ip 代理池来解决问题 ip 代理池相关的能够在 github 上搜索 ip proxy 本身选一个 去说 github.com/awolfly9/IP… 提供大致思路:mysql
- 获取器 经过 requests 的爬虫爬取免费的 IP 代理网址获取 IP。
- 过滤器经过获取器获取的代理请求网页数据有数据返回的保存进 Redis。
- 定时检测器定时拿出一部分 Proxy 从新的用过滤器进行检测剔除不能用的代理。
- 利用 Flask web 服务器提供 API 方便提取 IP
第3题: 在 Python 中,list,tuple,dict,set 有什么区别,主要应用在什么场景?
区别
- list:链表,有序的数据结构, 经过索引进行查找,使用方括号”[]”;
- tuple:元组,元组将多样的对象集合到一块儿,不能修改,经过索引进行查找, 使用括号”()”;
- dict:字典,字典是一组键(key)和值(value)的组合,经过键(key)进行查找,没有顺序, 使用大括号” {}”;
- set:集合,无序,元素只出现一次, 自动去重,使用”set([])”
应用场景
- list:简单的数据集合,可使用索引;
- tuple:把一些数据当作一个总体去使用,不能修改;
- dict:使用键值和值进行关联的数据;
- set:数据只出现一次,只关心数据是否出现, 不关心其位置。
第4题: 请描述方法重载与方法重写?
方法重载
是在一个类里面,方法名字相同,而参数不一样。返回类型能够相同也能够不一样。 重载是让类以统一的方式处理不一样类型数据的一种手段。c++
方法重写
子类不想原封不动地继承父类的方法,而是想做必定的修改,这就须要采用方法的重写。方法重写又称方法覆盖。git
第5题: 如何用 Python 来发送邮件?
smtplib 标准库程序员
能够参考菜鸟教程:www.runoob.com/python/pyth…github
第6题:是否了解线程的同步和异步?
- 线程同步:多个线程同时访问同一资源,等待资源访问结束,浪费时间,效率低
- 线程异步:在访问资源时在空闲等待时同时访问其余资源,实现多线程机制
- 你喊朋友吃饭,朋友说知道了,待会忙完去找你 ,你就去作别的了。
第7题:是否了解网络的同步和异步?
- 同步:提交请求->等待服务器处理->处理完毕返回,这个期间客户端浏览器不能干任何事
- 异步: 请求经过事件触发->服务器处理(这是浏览器仍然能够做其余事情)->处理完毕
第8题:你是否了解MySQL数据库的几种引擎?
这个答案比较发散,能够重点说下面两种web
InnoDB
InnoDB
是一个健壮的事务型存储引擎,这种存储引擎已经被不少互联网公司使用,为用户操做很是大的数据存储提供了一个强大的解决方案。sql
在如下场合下,使用InnoDB
是最理想的选择:数据库
- 更新密集的表。
InnoDB存储引擎
特别适合处理多重并发的更新请求。
- 事务。
InnoDB存储引擎
是支持事务的标准MySQL存储引擎。
- 自动灾难恢复。与其它存储引擎不一样,
InnoDB
表可以自动从灾难中恢复。
- 外键约束。MySQL支持外键的存储引擎
只有InnoDB
。
- 支持自动增长列AUTO_INCREMENT属性。
通常来讲,若是须要事务支持,而且有较高的并发读取频率,InnoDB是不错的选择。
MEMORY
使用MySQL Memory存储引擎
的出发点是速度。为获得最快的响应时间,采用的逻辑存储介质是系统内存。 虽然在内存中存储表数据确实会提供很高的性能,但当mysqld守护进程崩溃时,全部的Memory数据都会丢失。 得到速度的同时也带来了一些缺陷。
通常在如下几种状况下使用Memory存储引擎:
- 目标数据较小,并且被很是频繁地访问。在内存中存放数据,因此会形成内存的使用,能够经过参数max_heap_table_size控制Memory表的大小,设置此参数,就能够限制Memory表的最大大小。
- 若是数据是临时的,并且要求必须当即可用,那么就能够存放在内存表中。
- 存储在Memory表中的数据若是忽然丢失,不会对应用服务产生实质的负面影响。
第9题:关注题,最近在公号更新一个神奇的系列入门文章
她专科学历 27岁从零开始学习c,c++,python编程语言 29岁编写百例教程 30岁掌握10种编程语言, 用自学的经历告诉你,学编程就找梦想橡皮擦
欢迎关注她的公众号,非本科程序员