附答案 | 最强Python面试题之爬虫常见问题(2)

写在之前

大家好呀,我是帅蛋。

周末愉快呀,帅蛋的Python 爬虫系列来啦,主要分为两部分内容来讲呀,一部分是常见问题,另一部分是框架问题

今天依然是常见问题,一共 12 道题。Python 面试八股文尽在帅蛋的【最强Python面试题】,大家一定要记得点赞收藏呀!!!

欢迎和帅蛋聊一聊~扣扣2群:609771600,获取最新秋招信息 & 内推进度,日常聊聊迷茫吹吹牛皮,抱团取暖

顺便提一句,我所有和面试相关的内容都会放在#帅蛋的面试空间# 中,大家可以关注下这个话题~

我会尽我最大的努力帮助到大家哒!!!

主要内容

这些面试题是我结合自己的经验整理的,主要就是下面这 5 个专题:

  • Python 基础面试题(已完成
  • Python 进阶(已完成
  • Python 后台开发(已完成
  • 爬虫
  • 机器学习

PS:往期文章可以看文末链接哟~


对每道面试题我都会附带详细的答案,有些我觉得重要的内容会详细讲解,虽然是面试八股文,我还是希望大家不是只“知其然”,更得“知其所以然”

关于更新频率,每天我会更新 10 道题左右,总共会有差不多 200 道。

无论是准备面试还是自己学习,这份面试题绝对值得你去看,去学习。

大家可以关注我,再关注我,使劲关注我,不要错过每天的更新~

以下是正文

Python 爬虫常见问题第二部分,大家一定要记得点赞收藏,一起加油!
欢迎和帅蛋聊一聊~扣扣2群:609771600,获取最新秋招信息 & 内推进度,日常聊聊迷茫吹吹牛皮,抱团取暖

1、cookie 过期的处理问题?

因为 cookie 存在过期的现象,一个很好的处理方法就是做一个异常类,如果有异常的话 cookie 抛出异常类在执行程序。

2、动态加载又对及时性要求很高怎么处理?

Selenium + Phantomjs,尽量不使用 sleep 而使用 WebDriverWait

3、谈一谈你对 Selenium 和 PhantomJS 了解?

Selenium 是一个 Web 的自动化测试工具,可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生。Selenium 自己不带浏览器,不支持浏览器的功能,它需要与第三方浏览器结合在一起才能使用。但是我们有时候需要让它内嵌在代码中运行,所以我们可以用一个叫 PhantomJS 的工具代替真实的浏览器。Selenium 库里有个叫 WebDriver 的 API。WebDriver 有点儿像可以加载网站的浏览器,但是它也可以像 BeautifulSoup 或者其他 Selector 对象一样用来查找页面元素,与页面上的元素进行交互 (发送文本、点击等),以及执行其他动作来运行网络爬虫。

PhantomJS 是一个基于 Webkit 的“无界面”(headless)浏览器,它会把网站加载到内存并执行页面上的 JavaScript,因为不会展示图形界面,所以运行起来比完整的浏览器要高效。相比传统的 Chrome 或 Firefox 浏览器等,资源消耗会更少。

如果我们把 Selenium 和 PhantomJS 结合在一起,就可以运行一个非常强大的网络爬虫了,这个爬虫可以处理 JavaScript、Cookie、headers,以及任何我们真实用户需要做的事情。

主程序退出后,selenium 不保证 phantomJS 也成功退出,最好手动关闭 phantomJS 进程。(有可能会导致多个 phantomJS 进程运行,占用内存)。

WebDriverWait 虽然可能会减少延时,但是目前存在 bug(各种报错),这种情况可以采用 sleep。phantomJS 爬数据比较慢,可以选择多线程。如果运行的时候发现有的可以运行,有的不能,可以尝试将 phantomJS 改成 Chrome。

4、代理 IP 里的“透明”“匿名”“高匿”分别是指?

(1) 透明代理

它的意思是客户端根本不需要知道有代理服务器的存在,但是它传送的仍然是真实的 IP。你要想隐藏的话,不要用这个。

(2) 普通匿名代理

普通匿名代理能隐藏客户机的真实 IP,但会改变我们的请求信息,服务器端有可能会认为我们使用了代理。不过使用此种代理时,虽然被访问的网站不能知道你的 ip 地址,但仍然可以知道你在使用代理,当然某些能够侦测 ip 的网页仍然可以查到你的 ip。

(3) 高匿名代理

高匿名代理不改变客户机的请求,这样在服务器看来就像有个真正的客户浏览器在访问它,这时客户的真实 IP 是隐藏的,服务器端不会认为我们使用了代理。

设置代理有以下两个好处

  1. 让服务器以为不是同一个客户端在请求
  2. 防止我们的真实地址被泄露,防止被追究

5、robots 协议有什么用处?

Robots 协议:网站通过 Robots 协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。

6、为什么 requests 请求需要带上 header?

原因是:模拟浏览器,欺骗服务器,获取和浏览器一致的内容

header 的形式:字典

headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}

用法: requests.get(url,headers=headers)

7、dumps,loads 与 dump,load 的区别?

json.dumps() 将 pyhton 的 dict 数据类型编码为 json 字符串

json.loads() 将 json 字符串解码为 dict 的数据类型

json.dump(x,y) x 是 json 对象, y 是文件对象,最终是将 json 对象写入到文件中

json.load(y) 从文件对象 y 中读取 json 对象

8、平常怎么使用代理的?

(1) 自己维护代理池

(2) 付费购买(目前市场上有很多 ip 代理商,可自行百度了解,建议看看他们的接口文档(API&SDK))

9、IP 存放在哪里?怎么维护 IP?对于封了多个 ip 的,怎么判定 IP 没被封?

存放在数据库(redis、mysql 等)

维护多个代理网站

一般代理的存活时间往往在十几分钟左右,定时任务,加上代理 IP 去访问网页,验证其是否可用,如果返回状态为 200,表示这个代理是可以使用的。

10、怎么获取加密的数据?

(1) Web 端加密可尝试移动端(app)

(2) 解析加密,看能否破解

(3) 反爬手段层出不穷,js 加密较多,只能具体问题具体分析

11、假如每天爬取量在 5、6 万条数据,一般开几个线程,每个线程 ip 需要加锁限定吗?

(1) 5、6 万条数据相对来说数据量比较小,线程数量不做强制要求(做除法得一个合理值即可)

(2) 多线程使用代理,应保证不在同时一刻使用一个代理 IP

12、怎么监控爬虫的状态?

(1) 使用 python 的 STMP 包将爬虫的状态信心发送到指定的邮箱

(2) Scrapyd、pyspider

(3) 引入日志

已完成

Python 基础题

Python 进阶题

Python 后台开发


以上就是今天的内容,我是帅蛋,我们明天见~

❤️ 欢迎关注我,有问题,找帅蛋,我最看不得别人迷茫!

❤️ 如果你觉得有帮助,希望爱学习的你不要吝啬三连击哟[点赞 + 收藏 + 评论]~

还有小小公众号 【编程文青李狗蛋】,聊聊迷茫吹吹牛皮~

#帅蛋的面试空间##面试八股文##23届秋招##Python##python爬虫#
全部评论
周末也不能放松,快点起来卷呀!
1 回复 分享
发布于 2022-08-28 17:40 山东
学python还得看狗蛋
点赞 回复 分享
发布于 2022-08-30 11:41 安徽
学python还得看狗蛋
点赞 回复 分享
发布于 2022-08-30 14:07 广东
很详细,先收藏着
点赞 回复 分享
发布于 2022-09-01 07:15 广东
一键三连,点赞收藏
点赞 回复 分享
发布于 2022-09-01 07:20 广东
知识点很重要呢,这题必考
点赞 回复 分享
发布于 2022-09-01 07:24 广东
卷起来,Python面试很全面,汲取精华
点赞 回复 分享
发布于 2022-09-01 07:33 广东
干货满满,慢慢咀嚼,get
点赞 回复 分享
发布于 2022-09-01 07:40 广东
奥里给,太棒啦收藏收藏!
点赞 回复 分享
发布于 2022-09-01 12:31 广东
先收藏吓吓面试官,杠杠的!
点赞 回复 分享
发布于 2022-09-01 12:34 广东
得来全不费功夫,拿来吧你
点赞 回复 分享
发布于 2022-09-01 12:38 广东

相关推荐

昨天 12:37
已编辑
门头沟学院 Unity3D客户端
如题,鼠鼠快碎掉了。鼠鼠正在投暑期和日常的实习,可能是因为简历太差吧,好多初筛都没有过,所以其实格外珍惜每一次的约面。尤其鼠鼠是八股选手,但凡碰到喜欢问项目的面试官是直接速通鼠掉。那是一个万里无云的晚上,鼠鼠接到tx某子公司的约面,虽然没算法题但是问得我汗流浃背,面试官从我的八股批判到我的项目继而批判到我的实习,感觉基本上除了八股这种特定答案之外每一个问题都要质问我,尤其是询问到实习的时候我解释完之后直接来了一句“那你实习也啥也没做啊”,鼠鼠直接原地碎掉。之后的问题鼠鼠也不太记得了,大部分都是直接吟诵咒语,肌肉记忆直接不过脑子。因为接二连三的压力鼠鼠直接摆烂了,回答的时候也不太看屏幕直接开始搓...
机器人为什么是猫呀:楼主要自信。好的面试官是会照顾面试者情绪的,不会直接说那么伤人的话。面试表现其实很看自己的心态跟情绪,这些又和面试官的反馈很相关。而且有些面试官很高傲,不求甚解,自认为你的东西看一眼很简单,就不会听你说了,却没有从一个没有丰富工作经验的人的角度去思考。楼主不要因为这些影响心态,不要怀疑自己,只要遇到一个“合适”的面试官就会好很多的。
点赞 评论 收藏
分享
人生一梦:24年我投暑期实习,它以我不是女的为理由拒绝了我查看图片
点赞 评论 收藏
分享
评论
24
92
分享

创作者周榜

更多
牛客网
牛客企业服务