前言:
今天为大家带来的内容,是Python爬虫工程师面试问题总结!(附带部分解题答案与思路)喜欢的不忘收藏点赞关注不迷路哦!
提示:代码块用图片方式展现出来,且本文所有的答案都能找到!(所以你懂我的良苦用心吧)
1. 请写出一段Python代码实现删除一个list里面的重复元素
![30e66c004ca86ac1f371e9ed65648514.png](https://i-blog.csdnimg.cn/blog_migrate/3600be24805e30bad2f55169f068ba0e.jpeg)
2. Python里面如何拷贝一个对象?(赋值,浅拷贝,深拷贝的区别)
3. 介绍一下except的用法和作用?
4. Python中__new__与__init__方法的区别
__new__:它是创建对象时调用,会返回当前对象的一个实例,可以用__new__来实现单例
__init__:它是创建对象后调用,对当前对象的一些实例初始化,无返回值
5. 常用的网络数据爬取方法
- 正则表达式
- Beautiful Soup
- Lxml
6. 遇到过得反爬虫策略以及解决方法
7. urllib 和 urllib2 的区别
urllib 和urllib2都是接受URL请求的相关模块,但是urllib2可以接受一个Request类的实例来设置URL请求的headers,urllib仅可以接受URL。urllib不可以伪装你的User-Agent字符串。
urllib提供urlencode()方法用来GET查询字符串的产生,而urllib2没有。这是为何urllib常和urllib2一起使用的原因。
8. 设计一个基于session登录验证的爬虫方案
9. 列举网络爬虫所用到的网络数据包,解析包
网络数据包 urllib、urllib2、requests
解析包 re、xpath、beautiful soup、lxml
10)熟悉的爬虫框架
Scrapy框架 根据自己的实际情况回答
11)Python在服务器的部署流程,以及环境隔离
12)Django 和 Flask 的相同点与不同点,如何进行选择?
13)写一个Python中的单例模式
![bcc434b7ebaa91e089e2e9cdbfeec991.png](https://i-blog.csdnimg.cn/blog_migrate/e05564b59025101f0a2934cf4be14d9d.jpeg)
14. python是如何进行内存管理的?
15)你用过多线程和异步嘛?除此之外你还用过什么方法来提高爬虫效率?
- scrapy-redis 分布式爬取
- 对于定向爬取可以用正则取代xpath
16)POST与 GET的区别
- GET数据传输安全性低,POST传输数据安全性高,因为参数不会被保存在浏览器历史或web服务器日志中;
- 在做数据查询时,建议用GET方式;而在做数据添加、修改或删除时,建议用POST方式;
- GET在url中传递数据,数据信息放在请求头中;而POST请求信息放在请求体中进行传递数据;
- GET传输数据的数据量较小,只能在请求头中发送数据,而POST传输数据信息比较大,一般不受限制;
- 在执行效率来说,GET比POST好
17. 什么是lambda函数?它有什么好处?
以上就是本文内容!
最后,小编想说一句话:我是一名python开发工程师,整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习,面试宝典,面试宝典,面试宝典。想要这些资料的可以关注小编,并在后台私信小编:“07”即可领取。