python面试题——爬虫相关

1、接触过几种爬虫模块

  urllib、requests这两种爬虫模块。

2、robots协议是什么?

  它就是一个防君子不防小人的协议,网站有一些数据不想被爬虫程序爬取,可以编写robots协议文件,明确指明哪些内容可以爬取哪些不可以爬取。
  requests模块中并没有使用硬性的语法对该协议进行生效操作。
  在Scrapy框架中在settings.py文件中使用了硬性语法对该协议进行了生效。

3、如何处理验证码?

  使用三方的打码平台比如:云打码平台、打码兔。可以用来处理验证码。

4、掌握几种数据解析的方式?

  re、xpath(最常用)、bs4(python独有)

5、如何爬取动态加载的页面数据?

  selenium; ajax:抓包工具抓取异步发起的请求(url)

6、接触过哪些反爬机制?如何处理?

  robots协议、UA、封IP、验证码、动态数据加载、数据加密、token
  处理:配置不遵守robots协议、伪装User-Agent、代理IP更换、打码平台对验证码识别、selenium处理或者使用抓包工具去抓取动态加载的AJAX请求数据包、按照已知的各种加密方式进行解密、去前台页面进行token值的查找手动放入请求携带的参数中。

7、在Scrapy中接触过几种爬虫类?

  Spider、CrawlSpider(链接提取器和规则解析器)、RedisCrawlSpider、RedisSpider

8、如果实现分布式流程?

  必须要通过scrapy-redis组件来实现,可以由RedisCrawlSpider、RedisSpider这两种类分别实现。

9、简述 requests模块的作用及基本使用?

2、requests模块参数,data与json参数的区别?

97、简述 beautifulsoup模块的作用及基本使用?

98、简述 seleninu模块的作用及基本使用?

99、scrapy框架中各组件的工作流程?

100、在scrapy框架中如何设置代理(两种方法)?

101、scrapy框架中如何实现大文件的下载?

102、scrapy中如何实现限速?

103、scrapy中如何实现暂定爬虫?

104、scrapy中如何进行自定制命令?

105、scrapy中如何实现的记录爬虫的深度?

106、scrapy中的pipelines工作原理?

107、scrapy的pipelines如何丢弃一个item对象?

108、简述scrapy中爬虫中间件和下载中间件的作用?

109、scrapy-redis组件的作用?

110、scrapy-redis组件中如何实现的任务的去重?

111、scrapy-redis的调度器如何实现任务的深度优先和广度优先?

112、简述 vitualenv 及应用场景?

113、简述 pipreqs 及应用场景?

114、在Python中使用过什么代码检查工具?

115、简述 saltstack、ansible、fabric、puppet工具的作用?

posted @ 2018-12-09 14:12  休耕  阅读(926)  评论(0编辑  收藏  举报