真实 Python 爬虫面试题
就在昨天我面试了,来到上海之后面试的第一家公司,面试过程挺顺利,不出意外今天下午就会收到 offer。面试完之后,我走在路上,整个人都是在傻笑的状态,路人一脸关爱智障的眼神,但我还是非常的开心。
自己一路自学过来,不知道遇到多少 bug,不知道有多少个深夜,还在敲代码,不知道有多少迷茫的时候。我只知道我必须要更加努力。幸运的是,这一路下来,我没有放弃。天道酬勤,宁静致远。
6 月底我从重庆一所普通二本学校毕业,大学获奖屈指可数,挂科却不计其数。最开始我也连 C 语言的「hello world」,都要打错 4,5 遍。不是头函数没有加,就是少了一个字母。就单论大学的学习,我就是一个学渣。
我知道学习上比别人差,但至少在努力这个层面,我可以做到最好。我清楚地记得最开始学技术的时候,是看着别人的博客学。但我看一遍,两遍,甚至三遍根本就记不住。离开文章,脑海里一片空白,根本就不知道要写什么代码。
但那时候我根本不知道如何高效地学习,于是我就用最低效率的方法,看的记不住,那我就抄一遍,把博客里的内容,一个字一个字地敲打一遍。敲一遍记不住,那我就再敲一遍。这就是我最早学习技术的方式。一个暑假的时间风雨无阻,每天一篇博客敲打文,到了最后,有道云笔记里全是自己的敲打文。
现在回想起来那时候自己有多么的笨,但却又感谢曾经努力的我。就是靠着比别人多努力一点点,我慢慢能记得博客的内容;就是比别人多努力一点点,我能慢慢的写一个小程序;就是比别人多努力一点点,我能写出几千字的文章;就是比别人多努力一点点,公众号发展至今已有 1.3W 的读者数;就是比别人多努力一点点,如今来到我梦寐以求的上海。
七月初,独身一人,提着一包行李,买了张飞机票,就直接来到上海。上海我没有朋友,没有亲戚,甚至不知道下飞机之后,我该去往哪里。但这些都阻挡不了,我想要去上海的心。
在此记录下自己来到上海,第一家面试的公司,面试到的题。希望对你以后的 python 爬虫道路有所帮助。等之后工作稳定,我再详细写一篇,如何自学 python 找到爬虫工作。
笔试题
1. python 常用数据结构有哪些?请简要介绍一下。
2. 简要描述 Python 中单引号、双引号、三引号的区别。
3. 如何在一个 function 里面设置一个全局的变量?
4. Python 里面如何拷贝一个对象?(赋值、浅拷贝、深拷贝的区别)
5. 如果 custname 字符串的内容为 utf-8 的字符,如何将 custname 的内容转为 gb18030 的字符串?
6. 请写出一段 Python 代码实现删除一个 list 里面的重复元素。
7. 这两个参数是什么意思:args,*kwargs?
8. 统计如下 list 单词及其出现次数。
a=['apple', 'banana', 'apple', 'tomato', 'orange', 'apple', 'banana', 'watermeton']
9. 给列表中的字典排序:假设有如下 list 对象
alist=[{"name":"a", "age":20}, {"name":"b", "age":30}, {"name":"c", "age":25}]
将 alist 中的元素按照 age 从大到小排序。
10. 写出下列代码的运行结果
a = 1
def fun(a):
a = 2
fun(a)
print(a)
a = []
def fun(a):
a.append(1)
fun(a)
print(a)
class Person:
name = 'Lily'
p1 = Person()
p2 = Person()
p1.name = 'Bob'
print(p1.name)
print(p2.name)
print(Person.name)
11. 假设有如下两个 list:a = ['a', 'b', 'c', 'd', 'e'],b = [1, 2, 3, 4, 5],将 a 中的元素作为 key,b 中元素作为 value,将 a,b 合并为字典。
12. 使用 python 已有的数据结构,简单的实现一个栈结构。
面试官提的问题
1. 项目上遇到了哪些难点?如何解决?
2. 数据如何去重,清洗,存入数据库?
3. 有一个升序后又降序的数组,比如 1356742,如何查找到 2 的位置。
4. 如何查找到二叉树两个节点的最低公共祖节点?
5. mysql 的序列都有哪些?
6. 遇到哪些反爬机制?如何解决?
以上问题,你是否能全部答出来?