爬虫-考核题

Posted foremostxl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫-考核题相关的知识,希望对你有一定的参考价值。

一. Requests模块

1.    简述爬虫的概念

   爬虫就是通过编写程序模拟浏览器上网,然后让其去互联网上抓取数据的过程。

2.    爬虫有几种分类,在使用场景中

主要有两种:

在编写爬虫时先下载到本地进行测试,然后再进行正规的验证

1.通用爬虫:
通用爬虫是搜索引擎(Baidu、Google、Yahoo等)“抓取系统”的重要组成部分。主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。
简单来讲就是尽可能的;把互联网上的所有的网页下载下来,放到本地服务器里形成备分,在对这些网页做相关处理(提取关键字、去掉广告),最后提供一个用户检索接口。 搜索引擎如何抓取互联网上的网站数据? 门户网站主动向搜索引擎公司提供其网站的url 搜索引擎公司与DNS服务商合作,获取网站的url 门户网站主动挂靠在一些知名网站的友情链接中
2.聚焦爬虫:聚焦爬虫是根据指定的需求抓取网络上指定的数据。例如:获取豆瓣上电影的名称和影评,而不是获取整张页面中所有的数据值。

 

3.    简述robots协议的概念也作用

 - 如果自己的门户网站中的指定页面中的数据不想让爬虫程序爬取到的话,那么则可以通过编写一个robots.txt的协议文件来约束爬虫程序的数据爬取。

robots协议的编写格式可以观察淘宝网的robots(访问www.taobao.com/robots.txt即可)。但是需要注意的是,该协议只是相当于口头的协议,并

没有使用相关技术进行强制管制,所以该协议是防君子不防小人。但是我们在学习爬虫阶段编写的爬虫程序可以先忽略robots协议。

# Obey robots.txt rules
ROBOTSTXT_OBEY = True

4.    什么是反爬机制和反反爬机制

   - 门户网站通过相应的策略和技术手段,防止爬虫程序进行网站数据的爬取。
反爬机制:

(1)U-A校验模式

    当你在家用浏览器上网的时候,每次发送请求时请求头会自动携带浏览器参数还有系统参数给服务器。从而让服务器知道这是一个人啊!一次来作为反爬机制的一种。

(2)限制访问频率

    正常人浏览网站点击速度有多少?机器访问快多了,短时间发送几百个请求。这时候服务器检测到后就可以通过设置一个速度去封IP,例如一分钟访问200次就封锁IP

(3)设置验证码

    很多朋友都不明白为什么要验证码?我小时候想了这个问题很久很久,自从学了爬虫才明白,这东西真的是为了验证我是一个人在上网而生得。这种方法就让爬虫更加困难了。

(4)通过账号限制

    通过登录才可以浏览网站。

反反爬虫机制:

  - 爬虫程序通过相应的策略和技术手段,破解门户网站的反爬虫手段,从而爬取到相应的数据。

 

5.    简述使用requests模块进行数据爬取的大致流程

 

6.    简述使用requests模块爬取ajax加载数据爬取的大致流程

7.    简述User-Agent参数的作用

8.    在requests模块中接触过哪些反爬机制

9.    介绍下requests模块中get和post方法常用参数的作用

10.  简述session的创建流程及其该对象的作用

11.  简述如何使用requests模块进行模拟登录,并抓取登录成功后的某个二级页面数据。

12.  简述如何使用requests模块设置代理IP

二. 数据解析

1.    简述使用在使用正则进行解析时用到的re.S和re.M的作用和区别

2.    简述如何使用xpath进行数据解析

3.    简述如何使用bs4进行数据解析

4.    xpath方法返回值类型是什么

5.    在xpath中如何/text()和//text()的区别是什么

6.    id为su的div标签有一个子标签ul,ul下有十个li标签,每一个li标签下都有一个a标签,如何编写xpath表达式可以解析到a标签的href属性值

7.    class为wd的div标签有一个子标签ul,ul下有十个li标签,每一个li标签下都有一个a标签,如何编写xpath表达式可以解析到a标签中的文本内容

8.    简述BeautifulSoup模块中find和findall方法的区别

9.    简述BeautifulSoup模块中select方法的使用

10.  简述xpath插件的作用

三. Scrapy框架

1.    简述scrapy框架的安装流程

2.    scrapy中持久化操作有几种形式,分别如何实现?

3.    简述start_requests方法的作用

4.    如何进行post请求发送,在scrapy中

5.    如何手动进行一个get请求的发送,在scrapy中

6.    简述管道文件的作用

7.    简述Request方法中callback参数的作用

8.    简述Request方法中meta参数的作用

9.    简述下载中间件的作用

10.  简述如何设置scrapy项目的代理IP

11.  简述CrawlSpider中链接提取器的作用

12.  简述CrawlSpider中规则解析器的作用

13.  简述scrapy核心组件的工作原理

14.  原生scrapy框架为何不能实现分布式

15.  简述基于scrapy-redis分布式的流程

 

以上是关于爬虫-考核题的主要内容,如果未能解决你的问题,请参考以下文章

scrapy按顺序启动多个爬虫代码片段(python3)

scrapy主动退出爬虫的代码片段(python3)

第三次过程性考核

考核题

考核题

Java面试题答案解析: 基础考核-拆箱装箱, 数据类型, MAP