2020最新最全Python面试题整理(五)

1 描述一下scrapy框架的运行机制?
从start_urls里面获取第一批url发送请求,请求由请求引擎给调度器入请求对列,获取完毕后,调度器将请求对列交给下载器去获取请求对应的响应资源,并将响应交给自己编写的解析方法做提取处理,如果提取出需要的数据,则交给管道处理,如果提取出url,则继续执行之前的步骤,直到多列里没有请求,程序结束。

2 写爬虫使用多进程好,还是用多线程好?
IO密集型代码(文件处理、网络爬虫等),多线程能够有效提升效率(单线程下有IO操作会进行IO等待,造成不必要的时间浪费,而开启多线程能在线程A等待时,自动切换到线程B,可以不浪费CPU的资源,从而能提升程序执行效率)。在实际的数据采集过程中,既考虑网速和响应的问题,也需要考虑自身机器的硬件情况,来设置多进程或多线程

3 常见的反爬虫和应对方法?
基于用户行为,同一个ip段时间多次访问同一页面 利用代理ip,构建ip池
请求头里的user-agent 构建user-agent池(操作系统、浏览器不同,模拟不同用户)
动态加载(抓到的数据和浏览器显示的不一样),js渲染 模拟ajax请求,返回json形式的数据
selenium / webdriver 模拟浏览器加载
对抓到的数据进行分析
加密参数字段 会话跟踪【cookie】 防盗链设置【Referer

4 分布式爬虫主要解决什么问题?
面对海量待抓取网页,只有采用分布式架构,才有可能在较短时间内完成一轮抓取工作。
它的开发效率是比较快而且简单的。

5 如何提高爬取效率?
爬虫下载慢主要原因是阻塞等待发往网站的请求和网站返回
1,采用异步与多线程,扩大电脑的cpu利用率;
2,采用消息队列模式
3,提高带宽
为了可以给大家提出更多的学习建议,这是我建立的Python学习qun:前226,中间的是745,后面三个数是469。都是自学成功并且成功就业的,在彼此的沟通可以我们可以得到很多学习经验,学习始终靠自己,当你掌握了一个好的学习方法,系统的学习方式,你会发现其实学习Python并没有那么难,有问题在qun里随时问我,qun内含有不少的资学xi资料,且工作不忙的时候帮助大家解答问题。在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值