《Python网络爬虫与数据采集 试题及答案 共2套(1).docx》由会员分享,可在线阅读,更多相关《Python网络爬虫与数据采集 试题及答案 共2套(1).docx(7页珍藏版)》请在第一文库网上搜索。
1、Python网络爬虫与数据采集答案一、选择题(每题2分)1、查看网站所用的技术可以使用以下的哪个模块(A)A. WadB. Python-whoisC. RequestD. Ur11ib2、以下的XPath中用于选取所用N节点的表达式是(C)A. NB. /NC./ND.N/N3、正则表达式R0-93,能匹配出以下哪个字符串(D)A. R3B. R03C. R09D. R0934、以下数据库中不属于关系数据库的是(B)A. Mysq1B. RedisC. MongpDBD. PostgreSQ15、以下关于COokie与SeSSic)n说法正确的是(D)A. Cookie数据保存在服务器中B.
2、 Session数据保存在本地C.浏览器一般将cookie数据保存在http的body中D.Session是指抽象的客户端-服务器交互模式6、以下re方法中用于替换字符串的是(B)A. MatchB. SubC. Find_a11D. Sp1it7、以下哪一个Python库用于语言处理(B)A. NumpyB. N1TKC. SympyD. Scipy8、前端页面向后端发送表单数据通常使用(B)A. GetB. PostC. PutD. De1ete9、Python的OPen方法中代表追加写内容的模式字符是(C)A. rB. wC. aD. w+10、在SCraPy目录下,哪个文件负责存放爬虫
3、文件(A)A. spiders文件夹B. Item.pyC. Pipe1ine.pyD. Setting.py二、判断题(每题2分)1、axios通过同步加载的方式完成对内容的获取与呈现(X)2、Requests比于ur11ib库更加简洁实用()3、SeIeniUm相比于SP1aSh更加的节约资源(x)4、DiCtReader可以将CSV的每一行作为一个字典来返回(J)5、numpy一般是被认为基于PandaS设计的(x)6、APi与网页抓取共用许多概念与技术(J)7、破解滑动验证码需要实现图像拼接与匀速滑动(X)8、一般情况下ajax返回的数据是以Xm1形式封装的(J)9、Tag标签为a、i
4、mg、audio时属性为SrC(x)10SeIeniUm的WebdriVer的版本必须和浏览器的版本相对应(J)三、填空题(每题2分)1、爬虫前我们应该了解网站的robots.txt文件信息以被反爬虫封禁的风险。2、CSV文件的分隔值是一逗号。3、PVthOn中内置的数据库模块是Sq1it。4、python中主要使用PiCkIe模块来实现序列化与反序列化。5、常用的中文文本分析工具有iieba、SnOWN1P。6、BeautifuISoup中,通过tag的content属性可以将tag子节点以列表方式输出。7、字符串Str可以通过些trip方法来去除左右空格。8、用于re.finda11函数中
5、的http:Ia-ZA-Zo-9八.-*表达式用于提取http:开始的超链接。9、解释Robots协议:网络爬虫排除协议10、表示匹配空行的正则表达式是一四、简答题(每题4分)1、请简要说明使用Se1enium的大致流程。(1)创建浏览器对象(2)访问页面(3)定位网页元素(4)网页交互2、是否可以将自己的爬虫的User-agent设置为知名爬虫呢。从代码的角度看,没有人会限制你使用什么样的User-agent,就是上面的例子。实际上,不断变换User-agent的值也是很多不友好爬虫为了躲避服务器的检测的常用做法。但是这种做法是非常不可取的,它扰乱了Web服务器的正常判断,就可能使得某种知名
6、爬虫被检测出来不遵守Robots协议而产生纠纷。3、请简要说明点击一个网页链接,会发生的一系列时间。浏览器响应点击事件,解析ur1,发起Web请求,建立与服务端的连接,服务端响应请求,服务端返回请示结果,浏览器处理返回的结果。4、请简要说明爬虫时应对图片验证码的主要思路有哪些。通过程序识别图片再转化为文字并输入。手动打码,避开程序破解验证码环节。使用人工打码平台服务。5、请简要说明cookie与session的区别。Cookie数据保存在本地,而session数据保存在服务器。Session是指象的客户端-服务器交互模式,而cookie是session的一个具体实现手段。五、应用题(每题10分
7、)1、使用requests模块,将importrequestsur1=2、使用requests模块访问并通过正则表达式获取标题。importrequests,rer=requests.get(,https).content.decode(,utf-8,)pt=pi1e(,()(Ss+)(),)print(pt.search(r).group(2)Python网络爬虫与数据采集答案二、选择题(每题2分)11、Python中,可以用来存储数据的文件类型包括(D)E. txtF. csvG. jsonH.以上所有12、可以用来解析XM1文档的库有哪些(B)E. BeautifuISoupF. Ixm
8、1G. htm1.parserE.以上所有13、JUPyterNOteboOk对PythOn开发有什么帮助(D)E.插入数学公式F.制作演示文稿G.输入特殊关键字H.以上所有14、PythOn中用于进行自然语言处理的第三方库是(A)。A. n1tkB. spacyC. gensimD. jieba15、通用网络爬虫主要由哪些机构或者服务商使用(B)E.电商平台F.搜索引擎G.金融机构H.媒体平台16、使用Ur11ib.request.ur1open()方法请求网页时,如果需要添加请求头信息,应该使用哪个对象(C)E. ResquestF. ResponseG. OpenerH. Hand1er
9、17、使用SeIeni11m库进行动态页面抓取时,需要安装哪个组件(C)A.Chrome浏览器B.Chrome插件C.Chrome驱动D.Chrome扩展18、使用SeieniUm库进行动态页面抓取时,可以使用哪个方法模拟鼠标点击(A)E. c1ick()F. press()Gtap。H.touch()19、PythOn的爬虫框架包括(D)E. scrapyF. PySpiderG. PortiaH.以上所有20、PythOn与处理图片相关的工具或库不包括(A)A. Ixm1B. PI1C. Pi11owD. OpenCV六、判断题(每题2分)11解析HTM1只能使用BeaUtifU1SOUP
10、库(x)12、只能使用MatPIot1ib库来绘制图表(x)13、使用Ur1Iib.request.ur1open()方法请求网页时,可以直接添加请求头信息(x)14、使用用户代理池可以有效地防止被目标网站识别为爬虫(J)15、使用APi前,需要在提供APi服务的网站上申请一个接口服务(J)16、网络爬虫可以用任何编程语言实现,如PHP、Java.PythOn等(J)17、用Ur11ib.request库进行浏览器伪装时,需要修改Referer字段(x)18、AjaX是一种异步的JaVaSeriPt和XM1技术,它可以在不刷新整个页面的情况下,与服务器进行数据交换(J)19、IXm1库可以解析
11、HTM1代码,并提取出所有标签、属性和文本内容(x)20、正则表达式中,$表示匹配输入的开始,八表示匹配输入的结束,如果设置了多行标志,则它们也可以匹配换行符前后的位置(X)七、填空题(每题2分)11、发送HTTP请求可以使用request模块。12PandaS是Python中用于处理表格数据的标准库,它支持多种格式的数据导入导出,如CSV、ExcekJSoN等。13、使用FiddIer库进行抓包分析,可以查看浏览器与服务器之间的通信过程和数据。14、使用SeIeniUm库进行抓包分析,可以查看浏览器与服务器之间的通信过程和数据。15、cookies是指服务器为了一定目的而储存在用户本地的数据
12、。16、避开网站反爬虫机制可以用伪装headers/使用代理IP地址/修改访问频率/动态拨号等。、实现浏览器伪装、代理设置、Cookie处理等可以使用Ur11ib.request库。18、在XPath语法中,用来表示当前节点的轴名称是se1f。19、网络爬虫需要遵守目标网站的robots协议,以免造成不必要的麻烦。协议,以免造成不必要的麻烦。20、单元测试除了可以用UnitteSt模块,还可以使用PVteSt模块。八、简答题(每题4分)6、请简要说明什么是序列化和反序列化?序列化是将对象转换为可存储或传输的格式的过程。反序列化是将序列化后的数据恢复为原始对象的过程。7、如何在Python中使用
13、requests库发送HTTP请求?可以使用requests库的get()或PoSto方法来发送HTTPGET或PoST请求。例如:importrequestsresponse=requests.get(https,)8、简述SCraPy框架的优势(至少两条)支持多种数据输出格式,如JSoN、CSV、XM1等提供了一套完整的爬虫功能模块,包括请求管理、数据解析、数据存储、日志记录、异常处理等支持多种中间件和扩展组件,如代理池、CoOkie池、反反爬机制等支持分布式爬取和增量式爬取,提高了爬虫的效率和稳定性9、请简要说明Python相比MAT1AB在科学计算和数据分析方面的优势(至少两条)。应用广泛有更多程序库简洁,易于编码有可移植性和可扩展性10、简述XPath表达式的基本规则(至少两条)。Node1选取Node1下的所有节点node1分隔号代表到某元素的绝对路径,此处即选择根上的Node1/node1选取所有node1元素,不考虑XM1中的位置node1node2选取node1子节点中的所有node2node1node2选取node1所有后辈节点中的所有node2.选取当前节点.选取当前的父节点/href选取XM1中的所有href属性九、应用题(每题10分)1、请写一个PythOn程序,用于从给定的多个CSV文件中读取数据,并将数据合并成一个新的C