解析Python网络爬虫:核心技术、Scrapy框架、分布式爬虫(选择题、填空题、判断题)(第1、2、3、4、5、6、7、10、11章) |
您所在的位置:网站首页 › 获取页面响应时间的命令 › 解析Python网络爬虫:核心技术、Scrapy框架、分布式爬虫(选择题、填空题、判断题)(第1、2、3、4、5、6、7、10、11章) |
第一章 【填空题】 网络爬虫又称网页蜘蛛或 ( 网络机器人 ) 网络爬虫能够按照一定的( 规则 ),自动请求万维网站并提取网络数据。 根据使用场景的不同,网络爬虫可分为( 通用爬虫 )和( 聚焦爬虫 )两种。 爬虫可以爬取互联网上( 公开 )且可以访问到的网页信息。 【判断题】 爬虫是手动请求万维网网站且提取网页数据的程序。 × 爬虫爬取的是网站后台的数据。× 通用爬虫用于将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。√ 聚焦爬虫是“面向特定主题需求”的一种网络爬虫程序。√ 通用爬虫可以选择性地爬取与预先定义好的主题相关的页面。× 第二章 【填空题】 ( 搜索引擎 )是通用爬虫最重要的应用领域。 ( robots.txt )文件是搜索引擎访问网站是要查看的第一个文件。 网站提供了( Sitemap.xml )文件,可以方便网站管理员通知爬虫遍历和更新网站的内容。 User-Agent表示( 用户代理 ),用于描述发出HTTP请求的的终端信息。 为防止对方从访问量上认出爬虫的身份,可以( 降低 )访问网站的频率。 【判断题】 robots.txt文件一定要放置在一个站点的根目录下。√ robots.txt文件中至少要有一条User-Agent记录。√ robots.txt文件没有实际的约束力。√ 爬虫爬取网页的行为都很正当,不会受到网站的任何限制。× 针对采用了防爬虫措施的网站,爬虫是无计可施的。× 第三章 【单选题】 下列选项中,不属于请求报头的是( D )。 A、User-Agent B、Cookie C、Referer D、Content-Type 下列状态码中,表示客户端的请求有错误的是( C )。 A、200 B、304 C、403 D、500 下列请求报头中,可以记载用户信息实现模拟登录的是( B )。 A、User-Agent B、Cookie C、Connection D、Host 关于字符编码的类型中,用于指明浏览器可接受简体中文的是( A ) A、gb2312 B、iso-8859-1 C、utf-8 D、utf 服务器返回某个响应报头的取值如下: Content-Type:text/html;charset=utf-8 对于上述报头所表示的含义,描述正确的是( A )。 A、客户端使用utf-8格式对资源进行解码,然后对资源进行HTML解析 B、客户端使用HTML格式对资源进行解码,然后对资源进行utf-8解析 C、客户端使用utf-8格式对资源进行编码,然后对资源进行HTML解析 D、客户端使用HTML格式对资源进行编码,然后对资源进行HTML解析 【填空题】 服务器响应了浏览器发送的请求,返回( HTML )页面。 ( URl )是互联网上标准资源的地址。 客户端发送的请求消息由请求行、( 请求头部 )、空行以及请求数据4部分组成。 HTTP是一套计算机网络通信的规则,由客户端( 请求 )消息和服务器端( 响应 )消息组成。 ( GET )请求的参数都显示在URL上,服务器根据该请求所包含URL中的参数来产生响应内容。 【判断题】 POST请求的安全性更高,使用场合比GET请求多。√ 一旦服务器端出现错误,返回的状态码为403。× GET请求是指向指定资源提交数据进行处理请求,数据被包含在请求体中。× 服务器可以根据请求报头中的Accept进行判断,以返回适当的文件格式给浏览器。√ 通常有些网站返回的数据会出现乱码,肯定是客户端没有反馈正确的编码导致的。 × 第四章 【单选题】 使用urlopen()方法发送请求后,服务器后返回一个( A )类型的对象。 A、HTTPResponse B、ResponseHTTP C、Response D、ServiceResponse 示例程序如下: import urllib.request response=urllib.request.urlopen('http://python.org') print(response.getcode()) 若上述示例程序正常运行成功,则程序输出的结果为( A ) A、200 B、304 C、403 D、500 下列方法中,用于对传递的URL进行编码和解码的是( D ) A、urldecode, urlencode B、unquote, urlencode C、urlencode, urldecode D、urlencode, unquote 通过加入特定的( C ),可以将爬虫发出的请求伪装成浏览器。 A、Request B、opener C、Headers D、User_Agent 下列方法中,能够用来设置代理服务器的是( B )。 A、urlopen B、ProxyHandler C、urldecode D、Proxy 【填空题】 一旦超过了服务器设置的( 超时 )时间,就会抛出一个超时异常。 若客户端没有连接到服务器,则使用urlopen()方法发送请求后会产生( URLError )异常。 ( urllib )是Python内置的HTTP请求库,可以看作处理URL的组件集合。 如果要获取Response类中字符串形式的响应内容,可以访问( text )属性获取。 要想将爬虫程序发生的( 请求 )伪装成一个浏览器,需要自定义请求报头。 【判断题】 如果URL中包含了中文,则可以使用urlencode()方法进行编码。√ 登录网站时,只有浏览器发送的请求才能获得响应内容。√ 如果访问某网站的频率太高,则这个网站可能会禁止访问。√ urlopen()是一个特殊的opener,支持设置代理IP。× urlopen()函数返回的是一个文件对象,需要调用read()方法一次性读取。√ 第五章 【单选题】 下列选择中,属于非结构化数据的是( A ) A、图像 B、HTML C、XML D、JSON 下列选项中,属于结构化数据的是( D ) A、图像 B、文本 C、办公文档 D、JSON 下列解析技术中,用于解析JSON文档的是( B ) A、XPath B、JSONPath C、Beautiful Soap D、正则表达式 下列Python库或模块中,支持正则表达式语法的是( C )。 A、bs4 B、lxml C、re D、json 下列选取节点的表达式中,代表着从根节点开始选取的是( A )。 A、/ B、// C、name D、@ 【填空题】 ( 正则表达式 )是一个用于处理字符串的强大工具。 网页解析器可以从网页中提取出有价值的数据,或新的( URl )链接。 ( XPath )表示XML路径语言,能够确定XML树结构中某一部分的位置。 路径表达式是指从某节点到某个节点或某一组节点的顺序,以( / )字符进行分隔。 lxml是Python编写的库,主要用于解析和提取( HTML )或( XML )格式的数据。 【判断题】 如果路径表达式以“/"开始,那么该路径就代表着到达某个节点的绝对路径。√ 创建BeautifulSoup类实例时,如果没有明确指定解析器,那么该实例肯定会选择Python标准库。× 在使用bs4库调用find()方法查找节点时,只能将字符串作为参数。× JSONPath是一种信息抽取类库,用于从JSON文档中抽取指定信息。√ 路径表达式是唯一的,只能从根节点开始搜索。× 第六章 【单选题】 下列选项中,表示先进先出队列的类是( A )。 A、Queue B、LifoQueue C、PriorityQueue D、EmptyQueue 下列方法中,用于阻塞当前线程的是( A )。 A、join() B、put() C、qsize() D、get() 【单选题】如果从空队列中取数据,则会抛出( B )异常。 A、Full B、Empty C、Used D、Half 【填空题】 LifeQueue类表示 ( 后进先出 )队列,代表后进入的元素先出来。 优先级队列会按照级别顺序取出元素,级别最( 低 )是最先出来。 ( Queue )类提供了一个适用于多线程编程的先进先出的数据结构,用于生产者和消费者 一般情况下,启动( 固定 )数量的线程爬取多个网页。 queue模块中提供了3种队列,它们唯一的区别是元素取出的( 顺序 )不同。 ( 队列 )是线程间最常用的交换数据的技术。 【判断题】 优先级队列中的元素一般采取列表的形式进行存储。× 多线程要想同时爬取网页,需要准备一个待爬取网址列表。√ 启动线程爬取网页,线程的数量越多越好。× 协程无须通过操作系统调度,没有线程之间的切换和创建等开销。√ 如果启动线程的数量过少,则可能无法最大限度地提高爬虫的爬取速度。√ 第七章 【单选题】 下列方法中,可以生成PhantomJS浏览器当前页面快照的是( D ) A、PhantomJS() B、get() C、find_element_by_id() D、save_screenshot() 如果需要在页面上模拟一些鼠标操作,可以通过使用( B )类来实现。 A、WebDriver B、ActionChains C、Select D、Ajax 下列选项中,关于页面等待描述错误的是( B )。 A、如果实际页面响应时间过长,那么某个元素被代码引用后可能会抛出NullPointer异常 B、显式等待就是设置一个全局的最大等待时间 C、显式等待是指定某一条件,直到这个条件成立后才继续执行 D、隐式等待就是等待特定的时间 阅读下面一段示例程序: for handle in driver.window_handles: driver.switch_to_window(handle) 上述程序可以用作( C )操作 A、填充表单 B、弹窗处理 C、页面切换 D、获取页面的Cookie 请看下面表单的示例程序: ... 若要使用WebDriver定位上述元素,可以使用如下( A )方法实现。 A、find_element_by_id B、find_element_by_name C、find_elements_by_link_text D、find_elements_by_tag_name 【填空题】 使用了JavaScript脚本的网页,能够在( URL )不变的情况下改变网页的内容。 ( Selenium )是一个Web的自动化测试工具,可以按指定的命令自动操作。 PhantomJS是一个( 无界面 )浏览器,它能将网站加载到内存并执行页面上的JavaScript。 selenium库的( WebDriver )有点儿像加载网站的浏览器,它不仅可以查找页面元素,而且可以与页面上的元素进行交互。 当浏览器使用完毕时,应使用( quit )方法关闭浏览器。 【判断题】 JavaScript无须重载页面,可直接提交表单,在页面载入多媒体文件。√ 若提交表单后,网站的页面不需要重新刷新,则当前访问的网站用的是AJAX技术。√ selenium支持浏览器的功能,可以直接被用来执行指令。× 通过driver的get()方法可以将页面的内容加载到浏览器对象中,如果页面还没有加载完,此方法会一直阻塞等待。√ PhantomJS浏览器虽然不能显示页面,但是可以生成页面快照。√ 第十章 【单选题】 下列框架组件中,用于从响应中提取Item数据和URL的是( C )。 A、Scheduler B、Downloader C、Spiders D、Item Pipeline 下列文件中,用于存储Scrapy项目设置信息( A ) A、settings.py B、scrapy.cfg C、pipelines.py D、items.py 在scrapy.Item的子集中,可以添加( C )类型的属性来表示爬虫项目的实体数据。 A、scrapy.Item B、scrapy.Spider C、scrapy.Field D、scrapy.Pipeline 下列命令中,用于运行爬虫的是( C )。 A、scrapy startproject mySpider B、scrapy genspider itcast "itcast.cn" C、scrapy crawl itcast D、scrapy crawl itcast -o teachers.json 一个Scrapy项目中可以有多个爬虫,每个爬虫在执行时可以按照( B )属性来区分。 A、allowed_domains B、name C、start_urls D、parse 【填空题】 Scrapy是用纯Python实现的一个开源( 爬虫框架 ),能够高效地爬取网站数据,提取结构性数据。 ( Scheduler )组件负责接收引擎传递过来的请求,并按照某种方式整理排列和入列。 在Scrapy项目中,( items.py )文件用于定义项目的目标实体。 Scrapy使用( Item )来表示要爬取的数据。 ( scrapy.Spider )是Scrapy提供的爬虫基类,创建的爬虫类需要从该类该类继承。 【判断题】 Item Pipeline主要用于处理从Spiders中获取到的Item数据。√ 如果要创建一个爬虫文件,只能通过使用命令的方式来完成。× Scrapy爬虫文件中,需要使用start_urls属性确定爬取的起始URL元组或列表。√ 如果Scrapy爬虫文件中规定了爬虫的约束区域,那么不在这个区域的URL会被忽略。√ 一个Scrapy爬虫项目中只能存在一个爬虫文件。× 第十一章 【单选题】 关于Scrapy终端的说法中,正确的是( B ) A、Scrapy shell是一个非交互式终端 B、在不启动爬虫的情况下,可以使用Scrapy shell调度爬取代码 C、Scrapy shell可以用来测试正则表达式或CSS表达式 D、Python终端和IPython共享的情况下,Scrapy shell会优先选择标准的Python终端 下列关于Spiders爬取循环的描述中,错误的是( A ) A、当下载完毕返回时会生成一个Response,它会作为回调函数的返回值 B、如果回调函数返回一个Request,则该对象会经过Scrapy处理,下载相应的内容,并调用设置的回调函数 C、在回调函数中,可以使用解析器来分析网页内容,并根据分析的数据生成Item D、Spider返回的item将被存到数据库或文件中 下列选项中,包含了爬虫允许爬取的域名列表的是( D ) A、parse B、name C、start_urls D、allowed_domains 请阅读下列一个ITEM_PIPELINES配置项的样例: ITEM_PIPELINES={ 'mySpider.pipelines.DemoPipeline': 300 'mySpider.pipelines.DemoJsonPipeline': 500, 'mySpider.pipelines.DemoCSVPipeline': 700, 'mySpider.pipelines.DemoMongoPipeline': 900, } 上述示例中,( D )管道会优先执行? A、DemoMongoPipeline B、DemoCSVPipeline C、DemoJsonPipeline D、DemoPipeline 下列设置项中,能够控制爬取网站使用的用户代理的是( C ) A、PROXIES B、ITEM_PIPELINES C、USER_AGENT D、COOKIES_ENABLED 【填空题】 Scrapy shell是一个交互式( 终端 ),可在不启动爬虫的条件下尝试及调试爬取代码。 Scrapy框架提供( scrapy.Spider )作为爬虫的基类,所有自定义的爬虫必须从这个类派生。 当Item数据被Spiders收集之后,会被传递到( Item Pipeline )。 下载中间件是处于引擎和( 下载器 )之间的一层组件,多个下载中间件可以被同时加载运行。 每个Item Pipeline组件都是一个独立的Python类,该类中的( process_item() )方法必须实现。 【判断题】 如果计算机上已经安装了IPython,那么Scrapy shell会优先使用IPython。√ 如果调用process_request()方法时返回None,Scrapy将停止调用该方法。× Scrapy的代理IP、User-Agent的切换都是通过Item Pipeline进行控制的。× 在settings.py文件中,ITEM_PIPELINES项的值默认为空。√ 若ITEM_PIPELINES设置项的数值越大,则优先级越高。× |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |