Python网络爬虫与数据采集试卷及答案4套_第1页
Python网络爬虫与数据采集试卷及答案4套_第2页
Python网络爬虫与数据采集试卷及答案4套_第3页
Python网络爬虫与数据采集试卷及答案4套_第4页
Python网络爬虫与数据采集试卷及答案4套_第5页
已阅读5页,还剩20页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python网络爬虫与数据采集选择题(每题2分)查看网站所用的技术可以使用以下的哪个模块()WadPython-whoisRequestUrllib以下的XPath中用于选取所用N节点的表达式是()N/N//NN/N正则表达式R[0-9]{3},能匹配出以下哪个字符串()R3R03R09R093以下数据库中不属于关系数据库的是()MysqlRedisMongpDBPostgreSQL以下关于cookie与session说法正确的是()Cookie数据保存在服务器中Session数据保存在本地浏览器一般将cookie数据保存在http的body中Session是指抽象的客户端-服务器交互模式以下re方法中用于替换字符串的是()MatchSubFind_allSplit以下哪一个python库用于语言处理()NumpyNLTKSympyScipy前端页面向后端发送表单数据通常使用()GetPostPutDeletepython的open方法中代表追加写内容的模式字符是()rwaw+在scrapy目录下,哪个文件负责存放爬虫文件()spiders文件夹Item.pyPipeline.pySetting.py判断题(每题2分)axios通过同步加载的方式完成对内容的获取与呈现()Requests比于urllib库更加简洁实用()Selenium相比于Splash更加的节约资源()DictReader可以将CSV的每一行作为一个字典来返回()numpy一般是被认为基于pandas设计的()Api与网页抓取共用许多概念与技术()破解滑动验证码需要实现图像拼接与匀速滑动()一般情况下ajax返回的数据是以xml形式封装的()Tag标签为a、img、audio时属性为src()Selenium的webdriver的版本必须和浏览器的版本相对应()填空题(每题2分)爬虫前我们应该了解网站的文件信息以被反爬虫封禁的风险。CSV文件的分隔值是。Python中内置的数据库模块是。python中主要使用模块来实现序列化与反序列化。常用的中文文本分析工具有。BeautifulSoup中,通过tag的content属性可以将tag子节点以方式输出。字符串str可以通过方法来去除左右空格。用于re.findall函数中的

表达式用于提取http://开始的超链接。解释Robots协议:。表示匹配空行的正则表达式是。简答题(每题4分)请简要说明使用Selenium的大致流程。是否可以将自己的爬虫的User-agent设置为知名爬虫呢。请简要说明点击一个网页链接,会发生的一系列时间。请简要说明爬虫时应对图片验证码的主要思路有哪些。请简要说明cookie与session的区别。应用题(每题10分)1、使用requests模块,将'/physicalstore/index/ajaxSearchStore/'?storeCity=苏州&storeProvince=江苏'中的参数提取出来单独作为参数并访问这个url.使用requests模块访问并通过正则表达式获取标题。

Python网络爬虫与数据采集答案选择题(每题2分)查看网站所用的技术可以使用以下的哪个模块(A)WadPython-whoisRequestUrllib以下的XPath中用于选取所用N节点的表达式是(C)N/N//NN/N正则表达式R[0-9]{3},能匹配出以下哪个字符串(D)R3R03R09R093以下数据库中不属于关系数据库的是(B)MysqlRedisMongpDBPostgreSQL以下关于cookie与session说法正确的是(D)Cookie数据保存在服务器中Session数据保存在本地浏览器一般将cookie数据保存在http的body中Session是指抽象的客户端-服务器交互模式以下re方法中用于替换字符串的是(B)MatchSubFind_allSplit以下哪一个python库用于语言处理(B)NumpyNLTKSympyScipy前端页面向后端发送表单数据通常使用(B)GetPostPutDeletepython的open方法中代表追加写内容的模式字符是(C)rwaw+在scrapy目录下,哪个文件负责存放爬虫文件(A)spiders文件夹Item.pyPipeline.pySetting.py判断题(每题2分)axios通过同步加载的方式完成对内容的获取与呈现(x)Requests比于urllib库更加简洁实用(√)Selenium相比于Splash更加的节约资源(x)DictReader可以将CSV的每一行作为一个字典来返回(√)numpy一般是被认为基于pandas设计的(x)Api与网页抓取共用许多概念与技术(√)破解滑动验证码需要实现图像拼接与匀速滑动(x)一般情况下ajax返回的数据是以xml形式封装的(√)Tag标签为a、img、audio时属性为src(x)Selenium的webdriver的版本必须和浏览器的版本相对应(√)填空题(每题2分)爬虫前我们应该了解网站的robots.txt文件信息以被反爬虫封禁的风险。CSV文件的分隔值是逗号。Python中内置的数据库模块是sqlit。python中主要使用pickle模块来实现序列化与反序列化。常用的中文文本分析工具有jieba、SnowNLP。BeautifulSoup中,通过tag的content属性可以将tag子节点以列表方式输出。字符串str可以通过strip方法来去除左右空格。用于re.findall函数中的http://[a-zA-Z0-9/\.-]*

表达式用于提取http://开始的超链接。解释Robots协议:网络爬虫排除协议。表示匹配空行的正则表达式是^$。简答题(每题4分)请简要说明使用Selenium的大致流程。创建浏览器对象访问页面定位网页元素网页交互是否可以将自己的爬虫的User-agent设置为知名爬虫呢。从代码的角度看,没有人会限制你使用什么样的User-agent,就是上面的例子。实际上,不断变换User-agent的值也是很多不友好爬虫为了躲避服务器的检测的常用做法。但是这种做法是非常不可取的,它扰乱了Web服务器的正常判断,就可能使得某种知名爬虫被检测出来不遵守Robots协议而产生纠纷。请简要说明点击一个网页链接,会发生的一系列时间。浏览器响应点击事件,解析url,

发起web请求,建立与服务端的连接,

服务端响应请求,服务端返回请示结果,浏览器处理返回的结果。请简要说明爬虫时应对图片验证码的主要思路有哪些。通过程序识别图片再转化为文字并输入。手动打码,避开程序破解验证码环节。使用人工打码平台服务。请简要说明cookie与session的区别。Cookie数据保存在本地,而session数据保存在服务器。Session是指象的客户端-服务器交互模式,而cookie是session的一个具体实现手段。应用题(每题10分)1、使用requests模块,将'/physicalstore/index/ajaxSearchStore/'?storeCity=苏州&storeProvince=江苏'中的参数提取出来单独作为参数并访问这个url.importrequestsurl='/physicalstore/index/ajaxSearchStore/'params={"storeCity":"苏州","storeProvince":"江苏"}res=requests.get(url,params=params)print(res.status_code)使用requests模块访问并通过正则表达式获取标题。importrequests,rer=requests.get('').content.decode('utf-8')pt=pile('(\<title\>)([\S\s]+)(\<title\>)')print(pt.search(r).group(2))

Python网络爬虫与数据采集选择题(每题2分)Python中,可以用来存储数据的文件类型包括()txtcsvjson以上所有可以用来解析XML文档的库有哪些()BeautifulSouplxmlhtml.parser以上所有JupyterNotebook对python开发有什么帮助()插入数学公式制作演示文稿输入特殊关键字以上所有Python中用于进行自然语言处理的第三方库是()。A.nltkB.spacyC.gensimD.jieba通用网络爬虫主要由哪些机构或者服务商使用()电商平台搜索引擎金融机构媒体平台使用urllib.request.urlopen()方法请求网页时,如果需要添加请求头信息,应该使用哪个对象()ResquestResponseOpenerHandler使用selenium库进行动态页面抓取时,需要安装哪个组件()A.Chrome浏览器B.Chrome插件C.Chrome驱动D.Chrome扩展使用selenium库进行动态页面抓取时,可以使用哪个方法模拟鼠标点击()click()press()tap()touch()python的爬虫框架包括()scrapyPySpiderPortia以上所有python与处理图片相关的工具或库不包括()lxmlPILPillowOpenCV判断题(每题2分)解析HTML只能使用BeautifulSoup库()只能使用Matplotlib库来绘制图表()使用urllib.request.urlopen()方法请求网页时,可以直接添加请求头信息()使用用户代理池可以有效地防止被目标网站识别为爬虫()使用Api前,需要在提供Api服务的网站上申请一个接口服务()网络爬虫可以用任何编程语言实现,如PHP、Java、Python等()用urllib.request库进行浏览器伪装时,需要修改Referer字段()Ajax是一种异步的JavaScript和XML技术,它可以在不刷新整个页面的情况下,与服务器进行数据交换()lxml库可以解析HTML代码,并提取出所有标签、属性和文本内容()正则表达式中,$表示匹配输入的开始,^表示匹配输入的结束,如果设置了多行标志,则它们也可以匹配换行符前后的位置()填空题(每题2分)发送HTTP请求可以使用模块。是Python中用于处理表格数据的标准库,它支持多种格式的数据导入导出,如CSV、Excel、JSON等。使用库进行抓包分析,可以查看浏览器与服务器之间的通信过程和数据。使用库进行抓包分析,可以查看浏览器与服务器之间的通信过程和数据。是指服务器为了一定目的而储存在用户本地的数据。避开网站反爬虫机制可以用。实现浏览器伪装、代理设置、Cookie处理等可以使用库。在XPath语法中,用来表示当前节点的轴名称是。网络爬虫需要遵守目标网站的协议,以免造成不必要的麻烦。协议,以免造成不必要的麻烦。单元测试除了可以用unittest模块,还可以使用模块。简答题(每题4分)请简要说明什么是序列化和反序列化?如何在Python中使用requests库发送HTTP请求?简述Scrapy框架的优势(至少两条)请简要说明python相比MATLAB在科学计算和数据分析方面的优势(至少两条)。简述Xpath表达式的基本规则(至少两条)。应用题(每题10分)请写一个Python程序,用于从给定的多个csv文件中读取数据,并将数据合并成一个新的csv文件。使用selenium模拟页面下拉滚动。

Python网络爬虫与数据采集答案选择题(每题2分)Python中,可以用来存储数据的文件类型包括(D)txtcsvjson以上所有可以用来解析XML文档的库有哪些(B)BeautifulSouplxmlhtml.parser以上所有JupyterNotebook对python开发有什么帮助(D)插入数学公式制作演示文稿输入特殊关键字以上所有Python中用于进行自然语言处理的第三方库是(A)。A.nltkB.spacyC.gensimD.jieba通用网络爬虫主要由哪些机构或者服务商使用(B)电商平台搜索引擎金融机构媒体平台使用urllib.request.urlopen()方法请求网页时,如果需要添加请求头信息,应该使用哪个对象(C)ResquestResponseOpenerHandler使用selenium库进行动态页面抓取时,需要安装哪个组件(C)A.Chrome浏览器B.Chrome插件C.Chrome驱动D.Chrome扩展使用selenium库进行动态页面抓取时,可以使用哪个方法模拟鼠标点击(A)click()press()tap()touch()python的爬虫框架包括(D)scrapyPySpiderPortia以上所有python与处理图片相关的工具或库不包括(A)lxmlPILPillowOpenCV判断题(每题2分)解析HTML只能使用BeautifulSoup库(x)只能使用Matplotlib库来绘制图表(x)使用urllib.request.urlopen()方法请求网页时,可以直接添加请求头信息(x)使用用户代理池可以有效地防止被目标网站识别为爬虫(√)使用Api前,需要在提供Api服务的网站上申请一个接口服务(√)网络爬虫可以用任何编程语言实现,如PHP、Java、Python等(√)用urllib.request库进行浏览器伪装时,需要修改Referer字段(x)Ajax是一种异步的JavaScript和XML技术,它可以在不刷新整个页面的情况下,与服务器进行数据交换(√)lxml库可以解析HTML代码,并提取出所有标签、属性和文本内容(x)正则表达式中,$表示匹配输入的开始,^表示匹配输入的结束,如果设置了多行标志,则它们也可以匹配换行符前后的位置(x)填空题(每题2分)发送HTTP请求可以使用request模块。pandas是Python中用于处理表格数据的标准库,它支持多种格式的数据导入导出,如CSV、Excel、JSON等。使用Fiddler库进行抓包分析,可以查看浏览器与服务器之间的通信过程和数据。使用selenium库进行抓包分析,可以查看浏览器与服务器之间的通信过程和数据。cookies是指服务器为了一定目的而储存在用户本地的数据。避开网站反爬虫机制可以用伪装headers/使用代理IP地址/修改访问频率/动态拨号等。实现浏览器伪装、代理设置、Cookie处理等可以使用urllib.request库。在XPath语法中,用来表示当前节点的轴名称是self。网络爬虫需要遵守目标网站的robots协议,以免造成不必要的麻烦。协议,以免造成不必要的麻烦。单元测试除了可以用unittest模块,还可以使用pytest模块。简答题(每题4分)请简要说明什么是序列化和反序列化?序列化是将对象转换为可存储或传输的格式的过程。反序列化是将序列化后的数据恢复为原始对象的过程。如何在Python中使用requests库发送HTTP请求?可以使用requests库的get()或post()方法来发送HTTPGET或POST请求。例如:importrequestsresponse=requests.get('')简述Scrapy框架的优势(至少两条)支持多种数据输出格式,如JSON、CSV、XML等提供了一套完整的爬虫功能模块,包括请求管理、数据解析、数据存储、日志记录、异常处理等支持多种中间件和扩展组件,如代理池、Cookie池、反反爬机制等支持分布式爬取和增量式爬取,提高了爬虫的效率和稳定性请简要说明python相比MATLAB在科学计算和数据分析方面的优势(至少两条)。应用广泛有更多程序库简洁,易于编码有可移植性和可扩展性简述Xpath表达式的基本规则(至少两条)。Node1选取Node1下的所有节点/node1分隔号代表到某元素的绝对路径,此处即选择根上的Nodel//node1选取所有node1元素,不考虑XML中的位置node1/node2选取node1子节点中的所有node2node1//node2选取node1所有后辈节点中的所有node2.选取当前节点..选取当前的父节点//@href选取XML中的所有href属性应用题(每题10分)请写一个Python程序,用于从给定的多个csv文件中读取数据,并将数据合并成一个新的csv文件。importpandasaspd

csv_files=['file1.csv','file2.csv','file3.csv']

data=[]

forcsv_fileincsv_files:

df=pd.read_csv(csv_file)

data.append(df)

merged_data=pd.concat(data,axis=0)

merged_data.to_csv('merged_data.csv',index=False)使用selenium模拟页面下拉滚动。fromseleniumimportwebdriverfromselenium.webdriverimportActionChainsfromselenium.webdriver.common.keysimportKeysimporttime#滚动页面browser=webdriver.Chrome('yourchromediverpath')browser.get('

/')print(browser.title)#输出:"百度一下,你就知道"foriinrange(20):#browser.execute_script("window.scrollTo(0,document.body.scrollHeight)")#使用执行JS的方式滚动ActionChains(browser).sendkeys(Keys.PAGEDOWN).perform()#使用模拟键盘输入的方式滚动time.sleep(0.5)browser.quit()#退出

Python网络爬虫与数据采集试题选择题(每题2分)1、下列哪个选项不属于HTTP协议的请求方法?()GETPUSHPUTPOST下列哪个HTML标签可以设置超链接?()<p><div><a><h1>正则表达式“\d{3}-\d{8}|\d{4}-\d{8}”能匹配下列哪个字符串?()010-123456780432-12345670101234567804321234568Requests库中,可以查看响应状态码的方法是()textencodingcookiesstatus_code关于JavaScript说法不正确的是()JavaScript是一种面向对象、动态类型的解释性语言JavaScript主要运行在网站服务器上浏览器中的页面是在HTML的基础上经过JavaScript加工处理后生成的JavaScript可以写在HTML的<script>标签中下列NumPy方法中,能够将两个二维数组横向拼接的是()matinvvstackhstack以下不是Scrapy框架组件的是()‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬EngineSchedulerProcesserPipeline在Scrapy框架中,Downloader下载页面内容后结果经Engine发送到哪个组件?‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬()‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬SpidersPipelineScheduler以上均不正确Scrapy项目的settings.py文件中,指定log的最低级别的设置项是()BOT_NAMEDOWNLOAD_DELAYLOG_LEVELUSER_AGENTRequestHeader中指定是否需要持久连接的是()AcceptRefererRangeConnection判断题(每题2分)Python字符串操作中的strip方法可以去掉字符串左、右侧的空格()python_whois库可以查询网站所有者的相关信息()正则表达式中“$”匹配前面的子表达式0次或1次()SQL是一种小巧易用的轻量型关系数据库系统()pandas中的Series数据类型的特点是相比普通的一维数组能存放更多数据()Matplotlib可以用于绘制图表。()Selenium是一个专门用于开发Python爬虫的浏览器()Selenium中模拟键盘输入的函数是send_keys()()Python自带的单元测试模块是unittest()某同学认为自己开发的爬虫对网站的影响很小,可以忽略robots.txt中的内容()三、填空题(每题2分)旨在让网站访问者(或访问程序)了解该网站的信息抓取限制。HTTP请求中的方法向指定资源提交数据进行处理请求。正则表达式中表示匹配任意数字的是“”。Chrome开发者工具中的面板主要用来调试JavaScript。网络API使用约定和格式呈现数据。是一个开源的键值对存储数据库。可以操纵浏览器进行一些类似于普通用户的行为。浏览器一般把Cookie数据放在HTTP请求中的数据中。可以类似jQuery的形式解析网页,并支持CSS选择器。验证码的英文名称缩写为。四、简答题(每题4分)1.请使用正则表达式匹配下列字符串(1)只能输入数字。(2)只能输入非零的正整数(3)只能输入长度为3的字符(4)只能输入由26个大写英文字母组成的字符串(5)只能输入由26个英文字母组成的字符串2.请简述HTTP请求中的GET、HEAD、POST、PUT和DELETE方法(4分)3.请举例说明5种反爬虫的方式(4分)请简述Scrapy包含的组件及其功能。(至少举出5个组件)(4分)5.请说明Scrapy爬虫的工作过程?(4分)五、应用题(20分)1.请使用Matplotlib绘制[-π,π]区间内的余弦函数图像,要求曲线颜色为红色。2.请使用Scrapy框架编写Python程序,爬取豆瓣网首页()上所有a标签的文字内容。

1.Python爬虫的作用是什么?()A.爬取网页上的图片B.爬取网页上的文本C.爬取网页上的视频D.爬取网页上的音频2.以下哪个不是Python爬虫常用的库?()A.requestsB.BeautifulSoupC.ScrapyD.Pygame3.以下哪个不是HTTP协议中的请求方法?()A.GETB.POSTC.DELETED.UPDATE4.以下哪个正则表达式可以匹配所有以数字开头的字符串?()A.^\d+$B.^\d*$C.^\d+$D.^\d{1,}$5.以下哪个不是BeautifulSoup库中常用的解析器?()A.lxmlB.html.parserC.xmlD.json6.以下哪个XPath表达式可以选取所有class属性为"example"的元素?()A.//*[@class="example"]B.//*[class="example"]C.//*[@class=="example"]D.//*[@*]7.以下哪个不是Python网络爬虫的常用爬取策略?()A.深度优先策略B.广度优先策略C.贪心策略D.随机策略8.以下哪个不是Python网络爬虫的常用反爬机制?()A.IP代理池B.User-Agent伪装C.验证码识别D.数据加密9.以下哪个不是Python网络爬虫的常用反反爬机制?()A.动态IP代理池B.随机User-Agent伪装C.模拟登录验证机制D.数据解密10.Python爬虫中常用的数据处理工具有哪些?()A.pandas库B.numpy库C.matplotlib库D.以上所有在字符串前添加r可使字符串不经过转义()可以直接通过BeautifulSoup或tag对象实现BeautifulSoup中find_all()方法的功能()HTTP所有状态码的第一个数字代表了响应的五种状态之一()HTTP状态码中,200表示请求已成功,数据随此响应返回()在XPath中,希望选取此节点的所有子节点,应该使用”//”()在XPath中,希望选取所有名称为”title”的子节点,应该使用”//title”()在XPath中,希望选取所有名称为title且属于bookstore元素的元素,应该使用”//bookstore/title”()在XPath中,希望选取所有价格大于或等于30且小于40的书应该使用”//book[price>=30andprice<40]”()正则表达式中,使用”a.*”来匹配任意以字母a开头的字符串()BeautifulSoup库可以通过属性名和属性值来查找HTML或XML文件中的元素,比如使用soup.find_all(attrs={"class":"book"})来查找所有属性名为book的元素,返回值是一个列表()在浏览器中打开网站后,在网站首页的地址后面添加______,如果网站设置了访问许可,按回车就可以看到网站的robots

协议,即

robots.txt

文件内容。Web页面它具有一定的结构,即由_______。HTTP状态码是用来表示网页服务器HTTP响应状态的3位数字代码。状态码包含了五种类别,即消息、____、_____、______和服务器错误.404代表“NOTFOUND”,认为网页已经失效;___代表“ServiceUnavailable”,认为网页临时不可访问;___代表“Forbidden”,认为网页目前禁止访问;___代表是“MovedPermanently”,认为网页重定向至新URL。Requests模块中,headers参数的作用是________。若想要读写模式打开文件,应该使用___Cooike是___端的,数据保存在___端;Session是_____端的,数据保存在_____。使用matplotlib绘制散点图,使用的函数是_______。html标签从闭合的角度可以分为_______与______。按照链接的存在方式不同,分为________和________。什么是爬虫?爬虫的流程是什么?Python中常用的爬虫库有哪些?写爬虫是用单线程好还是多线程好?为什么?爬虫中如何处理动态页面?爬取百度(“”)首页的HTML代码爬取豆瓣电影Top250(“/top250”)的电影名称(按CSS搜索,属性名为“hd”)和评分(属性名为“rating_num”)

Python网络爬虫与数据采集试题选择题(每题2分)1、下列哪个选项不属于HTTP协议的请求方法?(B)GETPUSHPUTPOST下列哪个HTML标签可以设置超链接?(C)<p><div><a><h1>正则表达式“\d{3}-\d{8}|\d{4}-\d{8}”能匹配下列哪个字符串?(A)010-123456780432-12345670101234567804321234568Requests库中,可以查看响应状态码的方法是(D)textencodingcookiesstatus_code关于JavaScript说法不正确的是(B)JavaScript是一种面向对象、动态类型的解释性语言JavaScript主要运行在网站服务器上浏览器中的页面是在HTML的基础上经过JavaScript加工处理后生成的JavaScript可以写在HTML的<script>标签中下列NumPy方法中,能够将两个二维数组横向拼接的是(D)matinvvstackhstack以下不是Scrapy框架组件的是(C)‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬EngineSchedulerProcesserPipeline在Scrapy框架中,Downloader下载页面内容后结果经Engine发送到哪个组件?‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬(A)‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬SpidersPipelineScheduler以上均不正确Scrapy项目的settings.py文件中,指定log的最低级别的设置项是(C)BOT_NAMEDOWNLOAD_DELAYLOG_LEVELUSER_AGENTRequestHeader中指定是否需要持久连接的是(D)AcceptRefererRangeConnection判断题(每题2分)Python字符串操作中的strip方法可以去掉字符串左、右侧的空格(√)python_whois库可以查询网站所有者的相关信息(√)正则表达式中“$”匹配前面的子表达式0次或1次(x)SQL是一种小巧易用的轻量型关系数据库系统(x)pandas中的Series数据类型的特点是相比普通的一维数组能存放更多数据(x)Matplotlib可以用于绘制图表。(√)Selenium是一个专门用于开发Python爬虫的浏览器(x)Selenium中模拟键盘输入的函数是send_keys()(√)Python自带的单元测试模块是unittest(√)某同学认为自己开发的爬虫对网站的影响很小,可以忽略robots.txt中的内容(x)三、填空题(每题2分)Robots协议旨在让网站访问者(或访问程序)了解该网站的信息抓取限制。HTTP请求中的POST方法向指定资源提交数据进行处理请求。正则表达式中表示匹配任意数字的是“[0-9]”。Chrome开发者工具中的Sources面板主要用来调试JavaScript。网络API使用约定XML和JSON格式呈现数据。Redis是一个开源的键值对存储数据库。Selenium可以操纵浏览器进行一些类似于普通用户的行为。浏览器一般把Cookie数据放在HTTP请求中的Header数据中。PyQuery可以类似jQuery的形式解析网页,并支持CSS选择器。验证码的英文名称缩写为CAPTCHA。四、简答题(每题4分)1.请使用正则表达式匹配下列字符串(1)只能输入数字。(2)只能输入非零的正整数(3)只能输入长度为3的字符(4)只能输入由26个大写英文字母组成的字符串(5)只能输入由26个英文字母组成的字符串(1)^[0-9]*$(2)^"+?[1-9][0-9]*$(3)^.{3}$(4)^[A-Z]+$(5)^[A-Za-z]+$(每点1分)请简述HTTP请求中的GET、HEAD、POST、PUT和DELETE方法(4分)(1)GET:指定的页面信息,并返回实体主体。(2)HEAD:类似GET请求,只不过返回的响应中没有具体的内容,用于获取报头。(3)POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。(4)PUT:从客户端向服务器传送的数据取代指定的文档的内容。(5)DELETE:请求服务器删除指定的页面。(每点1分)请举例说明5种反爬虫的方式(4分)识别RequestHeaders:通过验证headers中的User-Agent信息来判定当前访问是否来自常见的界面浏览器。更复杂的headers验证则会要求验证Referer、Accept-encoding等信息。验证码:辨别计算机程序和人类用户的不同,广泛用于限制异常访问。限制或封禁IP地址:判定为爬虫后限制甚至封禁来自当前IP地址的访问。更改服务器返回的信息:通过加密信息、返回虚假数据等方式保护服务器返回的信息。账号限制:只有已登录的账号才能够访问网站数据。(每点1分)请简述Scrapy包含的组件及其功能。(至少举出5个组件)(4分)引擎(Engine):用于处理整个系统的数据流处理,触发事务,是框架的核心。调度器(Scheduler):用于接受引擎发送的请求,将请求放入队列中,并在引擎再次请求的时候返回。它决定下一个要抓取的网址,同时担负着网址去重这一重要工作。下载器(Downloader):用于下载网页内容,并将网页内容返回给爬虫。它的基础是twisted,一个Python网络引擎框架。爬虫(Spiders):用于从特定的网页中提取自己需要的信息,即Scrapy中所谓的实体(Item);也可以从中提取链接,让Scrapy继续抓取下一个页面。管道(Pipeline):负责处理爬虫从网页中抽取的实体,主要的功能是持久化信息、验证实体的有效性、清洗信息等。当页面被爬虫解析后,将被发送到管道,并经过特定的程序来处理数据。(每点1分)5.请说明Scrapy爬虫的工作过程?(4分)第1步,引擎打开一个网站,找到处理该网站的爬虫,并向该爬虫请求第一个要抓取的URL。第2步,引擎从爬虫中获取到第一个要抓取的URL并在调度器中以requests调度。第3步,引擎向调度器请求下一个要抓取的URL。第4步调度器返回下一个要抓取的URL给引擎,引擎将URL通过下载器中间件转发给下载器。一旦页面下载完毕,下载器会生成一个该页面的Responses,并将其通过下载器中间件发送给引擎。引擎从下载器中接收到Responses并通过爬虫中间件发送给爬虫处理。之后爬虫处理Responses并返回抓取的Item及发送(跟进的)新的Requests给引擎。引擎将抓取的Item传递给管道,将(爬虫返回的)Requests传递给调度器。重复第2步开始的过程直到调度器中没有更多的Requests,最终引擎关闭网站。五、应用题(20分)1.请使用Matplotlib绘制[-π,π]区间内的余弦函数图像,要求曲线颜色为红色。解答:frommatplotlibimportpyplotimportnumpyasnpx=np.linspace(-np.pi,np.pi)pyplot.plot(x,np.cos(x),color='red')pyplot.show()2.请使用Scrapy框架编写Python程序,爬取豆瓣网首页()上所有a标签的文字内容。解答:#Items.pyclassTextItem(scrapy.Item):text=scrapy.Field()#DoubanSpider.pyimportscrapyfromscrapy.selectorimportSelectorfrom..itemsimportTextItemclassDoubanspiderSpider(scrapy.Spider):name='DoubanSpider'allowed_domains=['']start_urls=['/']defparse(self,response):item=TextItem()hltext=response.xpath('//a/text()').extract()print("Textis"+''.join(hltext))item['text']=hltextreturnitem

1.Python爬虫的作用是什么?(B)A.爬取网页上的图片B.爬取网页上的文本C.爬取网页上的视频D.爬取网页上的音频2.以下哪个不是Python爬虫常用的库?(D)A.requestsB.BeautifulSoupC.ScrapyD.Pygame3.以下哪个不是HTTP协议中的请求方法?(D)A.GETB.POSTC.DELETED.UPDATE4.以下哪个正则表达式可以匹配所有以数字开头的字符串?(A)A.^\d+$B.^\d*$C.^\d+$D.^\d{1,}$5.以下哪个不是BeautifulSoup库中常用的解析器?(D)A.lxmlB.html.parserC.xmlD.json6.以下哪个XPath表达式可以选取所有class属性为"example"的元素?(A)A.//*[@class="example"]B.//*[class="example"]C.//*[@class=="example"]D.//*[@*]7.以下哪个不是Python网络爬虫的常用爬取策略?(C)A.深度优先策略B.广度优先策略C.贪心策略D.随机策略8.以下哪个不是Python网络爬虫的常用反爬机制?(D)A.IP代理池B.User-Agent伪装C.验证码识别D.数据加密9.以下哪个不是Python网络爬虫的常用反反爬机制?(C)A.动态IP代理池B.随机User-Agent伪装C.模拟登录验证机制D.数据解密10.Python爬虫中常用的数据处理工具有哪些?(D)A.pandas库B.numpy库C.matplotlib库D.以上所有在字符串前添加r可使字符串不经过转义(√)可以直接通过BeautifulSoup或tag对象实现BeautifulSoup中find_all()方法的功能(√

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论