《网络数据爬取与分析》考试复习题库及答案_第1页
《网络数据爬取与分析》考试复习题库及答案_第2页
《网络数据爬取与分析》考试复习题库及答案_第3页
《网络数据爬取与分析》考试复习题库及答案_第4页
《网络数据爬取与分析》考试复习题库及答案_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

PAGEPAGE1《网络数据爬取与分析》考试复习题库及答案一、单选题1.在MySQL数据库中,下列说法错误的是()A、使用showdatabase命令显示所有数据库B、使用update命名修改数据C、使用delete命名删除数据D、使用insertinto命名插入数据答案:A2.HTTP状态码中表示访问成功的是()。A、200B、501C、503D、404答案:A3.能够在字符串“aabaaabaaaab”中匹配“aab”,而不能匹配“aaab”和“aaaab”的正则表达式为()。A、{1,3}bB、aa??bC、aaa??bD、a∗?b答案:B4.下列哪项不属于爬取网页的库?()A、lxmlB、requestsC、seleniumD、urllib答案:A5.下列关于Requests库的说法错误的是()A、是一个Python标准库B、能够发送HTTP请求C、能够抓取二进制数据D、能够发送HTTP请求头答案:A6.使用selenium模块打开谷歌浏览器,以下选项中正确的是()A、webdriver.GoogleB、webdriver.Google()C、webdriver.ChromeD、webdriver.Chrome()答案:D7.beautifulsoup4库中遍历整个HTML文件,按照条件返回所有匹配的节点元素的方法是()A、find()B、select()C、find_all()D、search()答案:C8.下列关于urllib库的说法错误的是()。A、是一个Python的标准库B、由三个模块组成C、urllib.error模块是异常处理模块D、urllib.parse模块是用来解析URL的答案:B9.switch_to.frame()的作用是()A、切换到另一个浏览器B、切换到另-一个框架C、切换到另一个标签页D、切换到windows系统桌面答案:B10.Seleniumn中浏览器对象通过下列哪个属性或方法获取HTML源代码?()A、textB、currenturlC、tagnameD、page_source答案:D11.MongoDB数据库默认端口号是()。A、27017B、1521C、8888D、3306答案:A12.lxml库中选取属性的语法是()。A、B、C、∗D、//答案:A13.下列哪个函数可以实现判断网页是否可以爬取?()A、read()B、detect()C、set_url()D、can_fetch()答案:D14.下列哪个函数可以实现合并URL?()A、urlpase()B、urlencode()C、urljoin()D、quote()答案:C15.下列关于Chrome开发者工具描述错误的是()A、元素面板可查看元素在页面的对应位置B、源代码面板可查看HTML源码C、网络面板无法查看HTML源码D、网络面板可查看HTTP头部信息答案:C16.关于open函数的操作模式,以下选项中哪一种既可以读也可以写()。A、B、wC、a+D、wb答案:C17.在数据存储中,使用以下哪个方法实现将python对象转换成JSON字符串。()A、load()B、loads()C、writer()D、umps()答案:D18.以下选项中哪一个不是正则表达式的元字符().A、$B、C、^D、∗答案:B19.下列关于lxml库的说法正确的是()A、lxml是一个网络库B、lxml是一款高性能的HTML/XML解析库C、仅支持利用XPath来选取节点D、lxml是一个Python的标准库答案:B20.下列Tag对象的哪个属性返回标签包含的属性?()A、nameB、contentsC、attrsD、string答案:C21.以下选项中哪一个不是正则表达式的元字符()。A、$B、C、^D、∗答案:B22.下列不属于常见爬虫类型的是()。A、浅层网络爬虫B、聚焦网络爬虫C、增量式网络爬虫D、通用网络爬虫答案:A23.下列不属于selenium库模拟浏览器操作的方法是()。A、forward()B、click()C、maximize_window()D、minimize_window()答案:B24.Requests模块中,headers参数的作用是()。A、输入网址B、模拟浏览器C、提供ip代理D、设置超时时间答案:B25.下列关于XPath描述错误的是()。A、text()方法可提取节点的文本内容B、text()方法可用于选取包含指定文本内容的节点C、ontains()方法可用于选取以特定值开头的节点D、and可用于选取同时包含两种指定值的节点答案:C26.下列哪个函数可以检测字符的编码类型?()A、decode()B、encode()C、detect()D、Request()答案:C27.下列不属于HTML标签的是()。A、hrefB、headC、aD、li答案:A28.下列关于BeautifulSoup中对象类型描述错误的是()A、name()方法可以获取及修改Tag对象名称B、attrs()方法可获取Tag对象的HTML属性,返回值为列表形式C、string()方法可获取Tag对象中的文本字符串内容D、NavigableString对象无法被编辑,但可以进行替换答案:B29.下列关于urlopen()函数的说法错误的是()A、data参数是可选的B、可以用于对目标URL的访问C、设置data参数时,以POST方式发送请求D、不设置data参数时,以POST方式发送请求答案:D30.Selenium中提供了多种元素定位方法,但不包括以下选项中的()A、find_element_by_id()B、find_element_by_xpath()C、find_elementby_page()D、find_elementby_class_name()答案:C31.下列说法错误的是()A、‘//∗’选取整个HTML所有的节点B、‘//li/a’选取<li>节点下的所有<a>节点C、XPath不能做多属性过滤D、XPath中的索引是从1开始的答案:C32.pymongo库中实现插入数据的方法是()。A、find_one()B、insert_one()C、sort()D、elete_one()答案:B33.下列关于beutiflsoup4中Tag对象描述错误的是().A、string属性可获取Tag对象中的文本字符串内容B、attrs属性可获取Tag对象的HTML属性,返回值为列表形式C、ontents属性可获取Tag对象子标签的内容D、name属性可获取Tag对象的名称答案:B34.通过设置HTTP请求的哪个参数可以实现使用代理IP访问网页?()A、headersB、proxiesC、paramsD、ata答案:B35.MySQL数据库默认端口号是()。A、8888B、27017C、3306D、6379答案:C36.下列关于XPath的语法说法错误的是()A、‘/’选取当前节点的直接子节点B、‘’选取属性C、‘..’选取父节点D、‘//’选取当前节点的子节点答案:D37.下列Selenium库的方法中,不能通过节点属性进行多元素定位的是()。A、find_element_by_name()B、find_elements_by_class_name()C、find_elements_by_name()D、find_elements_by_id()答案:A38.HTTP响应状态码中表示访问成功的是()。A、200B、501C、503D、404答案:A39.通过设置HTTP请求的哪个参数可以实现伪装成浏览器访问网页?()A、paramsB、dataC、headersD、timeout答案:C40.下列关于XPath中功能函数描述错误的是()A、contains()方法可用于选取以指定值开头的节点B、and()方法可用于选取同时包含两种指定值的节点C、text()函数可用于选取包含指定文本内容的节点D、text()函数可提取节点文本内容答案:A41.逆向分析请求页面和取动态加载数据时选择Network面板的哪个选项查看JavaScript加载的文件?()A、CSSB、DocC、XHRD、Media答案:C42.下列哪个函数可以实现不同模式图像之间的转换。()A、show()B、convert()C、open()D、save()答案:B43.下列哪项表示禁止爬取ABC文件夹下的文件?()A、Disallow:/ABC/B、Disallow:/ABCC、Disallow:/∗?ABC∗D、isallow:/ABC/∗.htm答案:A44.以下正则表达式中,属于非贪婪匹配,且允许出现0次的是()A、B、∗C、∗?D、+?答案:C45.下列不属于Response对象属性的是()。A、contentB、txtC、textD、encoding答案:B46.下列关于json库中dumps()方法描述错误的是()。A、设置indent参数为2时,输出时缩进2个字符B、如果需要输出中文字符,设置ensure_ascii参数为FalseC、dumps()方法可将JSON对象写入文件内D、umps()方法可生成一个字符串答案:C47.<divid="wrapper"class="wrapper_new">,使用selenium中的方法定位该标签,以下选项中正确的是()。A、find_element_by_id("wrapper")B、find_element_by_id("wrapper_new")C、find_element_by_class("wrapper_new")D、以上都可以答案:A48.正则表达式R[0-9]{3},能匹配出以下哪个字符串()A、R3B、R03C、R09D、R093答案:D判断题1.requests库中post()函数的data参数可以接收字典、字节序列或文件对象,作为请求体的内容提交给HTTP。A、正确B、错误答案:A2.Selenium的webdriver的版本必须和浏览器的版本相对应。A、正确B、错误答案:A3.在requests库中,可以在发送HTTP请求时,使用proxies参数添加代理IP。A、正确B、错误答案:A4.foriinrange(1,5)表示会进行循环4次。A、正确B、错误答案:A5.Selenium中不支持使用xpath定位元素。A、正确B、错误答案:B6.在使用代码连接MySQL数据库时,如果指定的数据库还没创建也可以直接连接。A、正确B、错误答案:B7.在python中创建一个空集合,可以直接用set1={}。A、正确B、错误答案:B8.requests库中直接使用返回对象response.encoding的编码方式解析网页一定不会造成乱码问题。A、正确B、错误答案:B9.在MongoDB中,可以通过find()方法查询多条记录,返回一个字典列表数据。A、正确B、错误答案:A10.正则表达式中.∗代表匹配任意内容。A、正确B、错误答案:A11.网站中的robots.txt可以无视。A、正确B、错误答案:B12.同一个列表中的元素的数据类型可以各不相同。A、正确B、错误答案:A13.在selenium中浏览器对象可以通过text获取当前页面HTML源代码。A、正确B、错误答案:B14.csv库提供DIctWriter()方法用于初始化一个字典写入对象。A、正确B、错误答案:A15.Tag对象的string属性返回标签的文本信息,而text属性返回标签下所有标签的文本信息。A、正确B、错误答案:A16.在dumps()方法将python数据类型转化成JSON字符串时,将ensure_ascii设置为True,就能正常输出中文字符。A、正确B、错误答案:B17.在selenium中,通过ActionChains类初始化对象browser,这个对象会存储所有用户产生的行为,需要通过perform()方法执行这些行为。A、正确B、错误答案:A18.Selenium中模拟鼠标点击的函数是send_keys()。A、正确B、错误答案:B19.get方法相比post方法能携带更多信息。A、正确B、错误答案:B20.在BeautifulSoup4库中CSS选择器'a[src∗="abc"]'表示选择其src属性值中包含“abc”子串的所有<a>节点。A、正确B、错误答案:A21.集合中的元素没有特定顺序但可以重复。A、正确B、错误答案:B22.在Scrapy库中,Spider是负责处理所有的Request,并按照一定的方式将其进行整理。A、正确B、错误答案:B23.在Match对象中group()方法分组的下标从1开始。A、正确B、错误答案:B24.XPath语句'//div[contains(class,"tent")]'表示选取class属性值包含“tent”的div节点。A、正确B、错误答案:A25.在settings.py文件中DOWNLOADER_MIDDLEWARES的键值是一个数字,表示调用的优先级,数字越小表示越靠近Scheduler,数字越大表示越靠近Downloader。A、正确B、错误答案:A26.find_elements_by_name()表示通过节点的name属性名定位,匹配返回第一个符合条件的节点。A、正确B、错误答案:B27.通过正则表达式'ab{1,2}c'只可以匹配到字符abc。A、正确B、错误答案:B28.对数据库中的数据进行了修改,需要通过游标对象的mit()方法提交事务,才会将修改后的数据真正更新到数据库中。A、正确B、错误答案:A29.urllib库中urlopen()函数可以直接接收headers请求头数据。A、正确B、错误答案:B30.Python中使用open函数将图片写入硬盘,其操作模式为“wb”。A、正确B、错误答案:A31.在settings.py文件中的ITEM_PIPELINES的键值是一个数字,数字越大优先级越高。A、正确B、错误答案:B32.列表、元组和字符串都支持双向索引,有效索引的范围为[-L,L],L为列表、元组或字符串的长度。A、正确B、错误答案:B33.通过'scrapycrawlnews'命名可以生成一个名为news的py文件。A、正确B、错误答案:B34.在XPath语法中'body/div[1]'表示选取body节点下的第二个div子节点。A、正确B、错误答案:B35.正则表达式中$代表行首。A、正确B、错误答案:B填空题1.网络爬虫工作流程分为()、()和()三个步骤。答案:_爬取网页_|__解析网页|__存储数据2.可以用于检查给定字符串是否为合法电子邮件地址的正则表达式是()。答案:^\w+\w+\.+\w+$;3.XPath选择所有ul节点下所有class属性值为”listdata”子节点的表达式为().答案://ul/∗[class="listdata"];4.通过正则表达式验证一个字符是不是0-100之间的数字,是()答案:0$I[1-9]\d?$I100$;5.Selenium中使用___()___获取某个元素显示在网页上的文本。答案:.text__6.获取所有li元素下的所有class属性的值的XPath语句是()。答案:xpath‘//li/class’7.Python中使用__()__函数将程序暂停3秒。答案:_sleep38.匹配"aabe""ace"和"ade"的正则表达式为()答案:a[bcd]e9.获取倒数第二个li的a标签里内容的XPath语句是()-1/a]’[0].text)。答案:xpath‘//li[last(10.Selenium中使用_______获取某个标签的其他属性。答案:get_atrribute;11.使用组合方式匹配\W的正则表达式是()。答案:[^a-zA-Z0-9];12.表示匹配任意数字的正则表达式是().答案:_\d_13.通过正则表达式提取html标签名称:text="<h1>这是标题</h1>"是()。答案:re.serach“<+?”text14.页面可以通过()和()方式来向服务器发送请求的动态参数。答案:_POST_|GET__15.HTTP响应由()、()和()三部分组成。答案:响应状态码;|响应头;|响应体;16.使用组合的方式匹配任意非数字的正则表达式是()。答案:[^0-9]17.获取最后一个li的a的href属性对应的值的XPath语句是()]/a/href’)。答案:xpath‘//li[last(18.表示匹配空行的正则表达式是_______。答案:^$;19.HTTP请求由()、()、()和()四部分组成。答案:请求的网址;|请求方法;|请求头;|请求体;20.表示可以匹配一个任意大写字母或数字的正则表达式是()。答案:[A-Z0-9];21.pymongo库使用MongoClient类连接数据库,须指定连接的数据库()和()。答案:_地址_|__端口22.可以匹配长度为6~15的字符串,可以包含数字、字母和下划线的正则表达式是()。答案:^\w{6,15}$;23.通过BeautifulSoup的CSS选择器soup对象定位到li节点()。答案:soup.select'#J_goodsList>ul>li';简答题1.简述JSON数据的本质与使用。答案:JSON的本质:是一个字符串,JSON是对JS对象的字符串表达式,它使用文本形式表示一个JS对象的信息。JSON使用:(1)json.dumps(Python的list或者dict),将Python的list或者dict返回为一个JSON字符串;(2)json.loads(json字符串),将JSON字符串返回为Python的list或者dict;(3)json.dump(list/dict,fp),将Python的list或者dict转为一个JSON字符串,保存到文件中;(4)json.load(fp),从JSON文件中读出JSON数据,并转换为Python的list或者dict。2.解释一下一个URL由几个部分组成:scheme://host:port/path/?query-string=xxx#anchor答案:统一资源定位符(UniformResourceLocator,URL)是对可以从互联网上得到的资源位置和访问方法的一种简洁表示,是互联网上标准资源的地址。Scheme:协议(例如:HTTP、HTTPS、FTP)Host/IP:服务器的IP地址或者域名Port:服务器的端口(如果是走协议默认端口,缺省端口80),用来从互联网进入电脑Path:访问资源的路径,就是为了在电脑中找到对应的资源路径Query-string:参数,发送给http服务器的数据Anchor:锚(跳转到网页的指定锚点位置)3.简述下在requests模块中,requests.content和requests.text什么区别。答案:Requests.text返回的是unicode型数据,requsets.content返回的是bytes(二进制)型数据。也就是说如果想取文本数据可以通过response.text,如果想取图片,文件,则可以通过response.content。4.简述网络爬虫基本工作原理。答案:(1)预先设定一个或若干个初始网页URL,将初始URL加入到待爬取URL列表中;(2)从待爬取列表中逐个读取URL,并将URL加入到已爬取URL列表中,然后下载网页;(3)解析已下载的网页,并存储提取的数据,从中获取新的URL;(4)将新的URL在已爬取的URL列表中进行比对,检查该网页是否已爬取,如果网页没有被爬取,则将新的URL地址放入到待爬取URL列表的末尾,等待读取;(5)如此往复,直到待爬取URL列表为空或者满足设定的终止条件,最终达到遍历网页的目的。5.简要说明一下动态网页与静态网页的区别。答案:静态网页的内容在服务器上预先生成,每次请求时内容不变;(2分)而动态网页的内容通过JavaScript等技术在浏览器端生成,可能需要多次请求或与服务器交互才能获得完整内容。(3分)6.简述使用Scrapy框架的一般流程。答案:首先,创建新项目;其次,修改items脚本,定义Item中数据的结构;然后,创建spider脚本,解析响应,提取数据和新的URL;接着,修改settings.py脚本,设置Scrapy组件和定义全局变量;最后,运行爬虫程序。7.写出图片验证码的识别思路。答案:(1)获取验证码图片。(2)将图像转化为灰度图像。(3)将灰度图像转化为二值图像。指定二值化的阈值,将像素小于阈值的地方设置成黑色,将像素大于阈值的地方设置成白色,去除图片中的线条。(4)使用OCR技术识别图中字母或数字。8.Scrapy框架由哪7个组件构成,每个组件的有什么功能?答案:(1)Engine(引擎):负责处理系统的数据流、触发事务,是整个框架的核心。(2)Scheduler(调度器):负贵处理所有的Request,并按照一定的方式将其进行整理、排列和入队。(3)Downloader(下载器):负责下载网页内容。(4)Spider:负责解析所有的Response,提取Item所需的数据和新的URL。(5)ItemPlpeline(项目管道):负责处理Item,常见的处理有清理、验证和存储数据等。(6)DownloaderMiddleware(下载中间件):位于Engine和Downloader之间,可以自定义扩展下载功能。(7)SpiderMiddleware(Spider中间件):位于Engine和Spider之间,可以自定义扩展Engine和Spider间通信的功能。9.可以用于检查给定字符串是否为合法IP地址(ipv4格式)的正则表达式是。答案:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$;10.简述在浏览器中输入一个URL按下回车键后浏览器显示内容的这一过程的HTTP原理。答案:(1)这个过程是浏览器向Web服务器发送了一个HTTP请求;(2)Web服务器接收到这个请求后进行解析和处理,然后返回给浏览器对应的HTTP响应;(3)浏览器再对HTTP响应进行解析,从而将网页呈现了出来。11.解释一下HTTP请求中GET和POST方法的区别。答案:GET方法用于从服务器请求数据,参数会附在URL后面,适合请求数据,但不适合传输敏感信息。(3分)POST方法将数据放在请求的主体部分,更适合传输敏感信息和提交表单。(2分)12.简述下通用爬虫工作流程。答案:网络爬虫是一个自动化的程序,它的工作流程非常简单。爬虫程序首先先发送请求,获取网页响应的内容,然后解析网页内容,最后将提取的数据存储到文件或数据库中。总结起来,其工作流程可以分为爬取网页、解析网页和存储数据三个步骤。13.简述Scrapy中Engine控制数据流的工作基本步骤。答案:(1)Engine从Spider获取初始爬取列表的Request.(2)Engine将要爬取的Request发送给Scheduler,通过Scheduler进行调度。(3)Engine向Scheduler获取下一个要爬取的Request.(4)Engine将Request通过DownloaderMiddleware发送给Downloader.(5)当网页下载完毕,Downloader生成该网页的Response,并将其通过DownloaderMiddleware提交给Engine.(6)Engine将接收到Response通过SpiderMiddleware发送给Spider处理。(7)Spider解析响应,提取Item所需的数据和新的URL,并将Item和新的Request通过SpiderMiddleware提交给Engine。(8)Engine将Item发送给ItemPipeline,将新的Request发送给Scheduler.(9)重复第(2)~(8)步,直到Scheduler中没有Request,Engine关闭该爬虫程序,爬取结束。14.简述点触验证码的识别思路。答案:(1)获取验证码图片。首先将显示验证码的登录页面全屏截图;然后在网页的HTML源代码中查找验证码图片节点,获取图片的位置和大小;最后根据其左下角和右上角的坐标从页面全屏截图中截取相应的验证码图片并保存。(2)获取单击的位置坐标。调用超级鹰接口,上传验证码图片至超级鹰后台,返回识别的坐标。(3)解析坐标,模拟点击。由于超级鹰返回的坐标是字符串形式,且每个坐标

温馨提示

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

评论

0/150

提交评论