




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PAGEPAGE1《數據采集與網絡爬蟲》考試復習題庫(含答案)一、單選題1.使用()語句捕獲相應的異常。A、try-exceptB、try-catchC、try-exceptionD、try-catcherror答案:A2.在python中將字典轉化為json,以下選項正確的是()。A、json.load()B、json.loads()C、json.dump()D、json.dumps()答案:D3.下列選項中,主要負責解析JSON文稿的技術是()。A、正則表達式B、XPathC、BeautifutSoupD、JSONPath答案:D4.Python語言中用來定義函數的關鍵字是()。A、returnB、defC、functionD、efine答案:B5.偽造用戶headers訪問網頁主要是偽造()屬性。A、cceptB、user-agentC、hostD、accept-encoding答案:B6.()是安全的SSL加密傳輸協議,訪問遠程網絡資源。A、FileB、FTPC、HTTPD、HTTPS答案:D7.selenium中,()能關閉瀏覽器的是。A、exit()B、quit()C、lose()D、stop()答案:B8.threading.Thread()中的target參數用于()。A、必須為None,目前未實現,是為以后的擴展功能保留的預留參數B、表示子線程的功能函數,用于為子線程分派任務C、線程的名稱D、表示是否將線程設為守護線程答案:B9.re模塊中,以迭代形式返回多個匹配對象的是()。A、re.finditer()B、re.findall()C、re.search()D、re.pile()答案:A10.Scrapy框架中,屬于核心引擎的模塊是()。A、SpidersB、SchedulerC、EngineD、ItemPipeline答案:C11.selenium中,()能實現頁面后退。A、back()B、next()C、forward()D、prev()答案:A12.'<ul><li>1<li><li>2<li><li>3<li><li>4<li><li>5<li><li>6<li><ul>',()能獲取內容為奇數的節點。A、soup.select('ulli:nth-child(1)')B、soup.select('ulli:nth-child(1n)')C、soup.select('ulli:[1]')D、soup.select('ulli:[1n]')答案:B13.bs4中,()表示HTML中的標簽,是最基本的信息組織單元。A、bs4.element.Tag類B、s4.element.NavigableString類C、bs4.BeautifulSoup類D、bs4.element.ment類答案:A14.response對象中的encoding,用于()。A、獲取請求方式B、獲取響應頭C、設置或獲取響應內容的編碼格式,與text屬性搭配使用D、獲取字符串形式的響應內容答案:C15.re.findall("^\d[sz]+.","8sy")的結果是()。A、FALSEB、["8sy"]C、nullD、TRUE答案:B16.Python提供了()庫,通過該庫可以模擬用戶在瀏覽器上執行諸如單擊按鈕、輸入文本等行為,獲取網頁上動態加載的數據。A、requestsB、urlib3C、urlibD、selenium答案:D17.以下關于列表操作的描述,錯誤的是()。A、通過append方法可以向列表添加元素B、通過extend方法可以將另一個列表中的元素逐一添加到列表中C、通過insert(index,object)方法,在指定位置index前插入元素objectD、通過add方法可以向列表添加元素答案:D18.img標簽中的()屬性,用于指圖片地址。()。A、srcB、hrefC、titleD、alt答案:A19.多線程面向對象寫法,自定一個class繼承自Thread,重寫()方法。A、run()B、start()C、join()D、init()答案:B20.有選擇性地訪問與目標主題相關的網頁的爬蟲是()。A、通用網絡爬蟲B、聚焦網絡爬蟲C、增量式網絡爬蟲D、內網爬蟲答案:B21.selenium通過()來區分瀏覽器的窗口。A、窗口句柄B、窗口名稱C、窗口打開順序D、窗口title標題答案:A22.bs4中,若已找到節點,并存放于變量x中,()獲取節點內容。A、x.textB、x.contentC、x.htmlD、x.attrs答案:A23.XPath路徑表達式,()在搜索節點是會忽略層級關系。A、/B、//C、[]D、答案:B24.ElementTree類或Element類中提供了3個常用的查找方法,支持絕對路徑的是()。A、find()B、findall()C、xpath()D、search()答案:C25.re模塊中,對正則表達式進行預編譯,從而生成一個代表正則表達式的Pattern對象()。A、re.pattern()B、re.split()C、re.run()D、re.pile()答案:D26.正則匹配模式中,使字符'.'匹配所有字符,包括換行符的是()。A、re.SB、re.UC、re.AD、re.M答案:A27.選擇html頁面上所有class屬性為“cls”的div標簽,Xpath代碼為()。A、//divclass='cls'B、//div[class='cls']C、/divclass='cls'D、//divclass=cls答案:B28.正則表達式中匹配至少一個x使用()。A、x?B、x+C、x!D、x?答案:B29.()不僅會改動數據包,還會暴露當前訪問客戶端的真實IP地址。A、高度匿名代理服務器B、普通匿名代理服務器C、透明代理服務器D、所有選項均不對答案:C30.()匹配HTML內容時,支持CSS選擇器。A、正則表達式B、XPathC、BeautifulSoupD、JSONPath答案:B31.requests庫中,()獲取二進制形式的響應內容,圖片,文件。A、status_codeB、contentC、ontextD、text答案:B32.下列模塊或庫中,能夠支持正則表達式語法使用的是()。A、reB、jsonC、lxmlD、bs4答案:A33.以下網絡請求模板中,無須安裝便可以直接在程序中使用的是()。A、urllibB、urllib3C、requestsD、均需要額外安裝后才能正常使用答案:A34.正則表達式r'^wx?yz'能匹配()。A、wxyzB、wx-yzC、wx?yzD、wx\?yz答案:A35.關于Python語言的注釋,以下選項中描述錯誤的是()。A、Python語言的單行注釋以#開頭B、Python語言的單行注釋以單引號'開頭C、Python語言的多行注釋以'''(三個單引號)開頭和結尾D、Python語言有兩種注釋方式,單行注釋和多行注釋答案:B36.re.findall()函數中,用于指定,正則匹配模式的參數是()。A、flagB、patternC、stringD、flags答案:D37.selenium中,()通過CSS選擇器定位元素。A、find_element_by_css_selector()B、find_element_by_class_name()C、find_element_by_tag_name()D、find_element_by_name()答案:A38.正則匹配模式中,忽略大小寫的元字符是()。A、re.IB、re.LC、re.MD、re.S答案:A39.下列方法中,用于獲取頁面中的所有的Cookie值的是()。A、get()B、get_cookies()C、get_cookie()D、elete_cookie()答案:B40.下列說法正確的是()。A、線程>進程>協程B、進程>線程>協程C、協程>進程>線程D、線程>協程>進程答案:B41.https的端口號是()。A、80B、8080C、443D、433答案:C42.requests庫中,proxies參數傳入一個字典,該字典中包含了所需要的代理IP,其中字典的鍵為()。A、getB、ip地址C、代理類型(http或https)D、post答案:C43.以下選項中()是HTTP請求行。A、GET/HTTP/1.1B、Connection:keep-aliveC、Accept-Language:zh-CN,zh;q=0.9D、User-Agent:Mozilla/5.0(WindowsNT10.0;Win64;x64)...答案:A44.以下XPath謂語中,()能獲得滿足條件的第一個節點。A、[0]B、[1]C、[first()]D、[min()+1]答案:B45.re.sub()函數的第一個參數是()。A、正達表達式B、替換字符C、被替換字符D、偏移量答案:A46.用于解析域名的協議是()。A、HTTPB、DNSC、FTPD、SMTP答案:B47.'<ul><li>1<li><li>2<li><li>3<li><li>4<li><li>5<li><li>6<li><ul>',()能獲取內容為6的節點。A、soup.select('ulli:first-child()')B、soup.select('ulli:last-child()')C、soup.select('ulli:[-1]')D、soup.select('ulli:[6]')答案:B48.哪個選項是使用PyInstaller庫對Python源文件打包的基本使用方法()。A、pip-hpipinstall擬安裝庫名B、pipdownload擬下載庫名C、pyinstaller需要在命令行運行D、pyinstallerPython源程序文件名答案:D49.以下XPath謂語中,()能獲得滿足條件的前2個節點。A、[min()+1]B、[first()+1]C、[position()<3]D、[position()<2]答案:C50.在Selnium中,()模塊提供許多內置等待條件。A、webdriver.support.expected_conditionsB、webdriver.support.ui.expected_conditionsC、webdriver.expected_conditionsD、無正確選項答案:A51.bs4中,()表示元素內字符串的注釋部分,是一種特殊的NavigableString類的對象。A、bs4.element.Tag類B、s4.element.NavigableString類C、bs4.BeautifulSoup類D、bs4.element.ment類答案:D52.bs4中,若已找到節點,并存放于變量x中,()獲取節點名稱。A、x.tagB、C、x.tag_nameD、x.tagname答案:B53.http狀態碼中,表示重定向的是()。A、500B、200C、400D、301答案:D54.下列表達式能匹配到偶數的是()。A、\d?[^13579]B、\b\d?[02468]\bC、\d?[02468]D、\d+[02468]答案:B55.selenium中,WebDriverWait()參數,用于設置條件判斷的輪詢周期。A、driverB、timeoutC、poll_frequencyD、ignore_exceptions答案:C56.()服務將域名和IP地址相互映射。A、DNSB、DSNC、ADSLD、CSDN答案:A57.()擴展標記語言。A、DHTMLB、HTMLC、XMLD、JSON答案:C58.請求頭部信息中,()用于標識客戶端身份,通常頁面會根據不同的信息自動做出適配,甚至返回不同的響應內容。A、hostB、user-agentC、acceptD、referer答案:B59.下列一些類中,用來表示XML中節點的是()。A、NodeB、ElementPathC、ElementD、ElementTree答案:C60.XPath表達式中,()可以根據多個路徑選取對應的節點。A、|B、||C、&D、&&答案:A61.bs4中,使用soup對象查找id='link1'的節點,代碼正確的是()。A、soup.find(['id','link1'])B、soup.find({'id','link1'})C、soup.find({'id':'link1'})D、soup.find(attrs={'id':'link1'})答案:D62.正則表達式[a-z].?3可以配置abc3abc3a3幾次()。A、0B、1C、2D、3答案:B63.()匹配嵌套了HTML內容的文本時,會忽略HTML內容本身存在的層次結構。A、正則表達式B、XPathC、BeautifulSoupD、所有選項均正確答案:A64.Xpath中的()可用來選取未知的XML節點。A、節點B、屬性C、表達式D、通配符答案:D65.能將baidu_logo.png正確的保存到文件中的是()。A、withopen('baidu_logo.png','wb')asfile:B、withopen('baidu_logo.png','w')asfile:C、withopen('baidu_logo.png','wr')asfile:D、withopen('baidu_logo.png','a+')asfile:答案:A66.下列選項中,用于以字符串形式獲取響應內容的是()。A、status_codeB、textC、ontentD、string答案:B67.()是文件傳輸協議,訪問共享主機的文件資源。A、FileB、FTPC、HTTPD、Mailto答案:B68.'<ul><li>1<li><li>2<li><li>3<li><li>4<li><li>5<li><li>6<li><ul>',()能獲取內容為4、6的節點。A、soup.select('ulli:nth-child(2n)')B、soup.select('ulli:nth-child(2n+2)')C、soup.select('ulli:[4,6]')D、soup.select('ulli:[4-6]')答案:B69.在使用lxml解析網頁時,需要導入以下哪個包()。A、xtreeB、etreeC、treeD、html答案:B70.正則表達式r'^wx+yz'能匹配()。A、wzB、wxxyzC、wxyz中的任1個字符D、除wxyz中的任意字符答案:B71."發布人:張三□□發布時間:2022-11-18□□來源:圖情信息中心".split('□□')的執行結果是A、['發布人:張三','□','發布時間:2022-11-18','□','來源:圖情信息中心']B、['發布人:張三','發布時間:2022-11-18','來源:圖情信息中心']C、('發布人:張三','□','發布時間:2022-11-18','□','來源:圖情信息中心')D、('發布人:張三','發布時間:2022-11-18','來源:圖情信息中心')答案:B72.執行此語句t=threading.Thread(target=my_func,args=(100,200))創建線程后,等待線程運行結束()。A、t.run()B、t.sleep()C、t.wait()D、t.join()答案:D73.正則表達式r'[wxyz]'能匹配()。A、wxyzB、wxyz的任意組合C、wxyz中的任1個字符D、除wxyz中的任意字符答案:C74.使用xpath獲取文本使用()。A、textB、text()C、ontentD、content()答案:B75.下列不能匹配任意字符的是()。A、[\d\D]B、[\w\W]C、[\s\S]D、[\a\A]答案:D76.Python中對于字符串表示,正確的是()。A、bc"ab"B、'abc"ab'C、"abc"ab"D、'abc'ab'答案:B77.在使用lxml解析網頁時,需要導入以下哪個包()。A、xtreeB、etreeC、treeD、html答案:B78.response對象中的headers,用于()。A、獲取請求方式B、獲取響應頭C、設置或獲取響應內容的編碼格式,與text屬性搭配使用D、獲取服務器返回的Cookie答案:B79.selenium中,鼠標操作被封裝在()類中。A、ctionChainsB、ActionC、hainsD、Mouse答案:A80.以下選項中,不是Python對文件的打開模式的是()。A、'w'B、'+'C、'c'D、'r'答案:C81.Python語言中用來定義函數的關鍵字是()。A、returnB、defC、functionD、efine答案:B82.當正則表達式中包含能接受重復的限定符時,匹配盡可能少的字符,這被稱為()。A、貪婪匹配B、懶惰匹配C、占有匹配D、隨機匹配答案:B83.F12抓包工具,可以查看程序運行錯誤信息的是()。A、ELements(元素面板)B、設備模擬器C、onsole(控制臺)D、Network(網絡)答案:C84.bs4中,()表示HTML中標簽的文本。A、bs4.element.Tag類B、s4.element.NavigableString類C、bs4.BeautifulSoup類D、bs4.element.ment類答案:B85.請求頭部信息中,()用于在瀏覽器中寄存的小型數據體,它可以記載和服務器相關的用戶信息,也可以用來實現模擬登錄。A、Content-TypeB、hostC、ookieD、referer答案:C86.re.match()描述正確的是()。A、從字符串的起始位置匹配,匹配成功返回一個匹配的對象B、從字符串的起始位置匹配,匹配成功返回多個匹配的對象C、掃描整個字符串并返回第一個成功的匹配D、掃描整個字符串并返回所有成功的匹配答案:A87.影響網絡爬蟲速度的因素主要是()。A、數據解析速度B、網絡I/O操作C、數據寫入磁盤的開銷D、爬蟲開發語言答案:B88.re.findall("^[a-z]oo[kd]$","bzood")的結果是()。A、falseB、trueC、nullD、["bzood"]答案:D89.requests異常信息中,()表示,發出請求需要有效的URL。A、RequestExceptionB、ConnectTimeoutC、ReadTimeoutD、URLRequired答案:D90.selenium中,()能查找<formname='hello'></form>的元素。A、find_element_by_css_selector('hello')B、find_element_by_class_name('hello')C、find_element_by_tag_name('hello')D、find_element_by_name('hello')答案:D91.http狀態碼中,表示訪問成功的是()。A、200B、501C、503D、404答案:A92.requests庫中,()獲取二進制形式的響應內容,圖片,文件。A、status_codeB、contentC、ontextD、text答案:B93.下列哪個正則表達式與1\d{5,9}不相同()。A、[1]\d{5,9}B、1[0-9]{5,9}C、1[0123456789]{5,9}D、[1]\D{5,9}答案:D94.正則匹配模式中,根據ASCII字符集匹配字符是()。A、re.SB、re.UC、re.AD、re.M答案:C95.能同時匹023-58102054、(0991)8585671、(023)58102054的正則表達式是()。A、(\(0\d{2,3}\)|0\d{2,3}-?)\d{7,8}B、0\d{2,3}-?\d{7,8}&\(0\d{2,3}\)\d{7,8}C、(\(0\d{2,3}\)&0\d{2,3}-?)\d{7,8}D、(023|0091)\d{7,8}答案:A96.以下選項中,Python網絡爬蟲方向的第三方庫是()。A、numpyB、openpyxlC、PyQt5D、scrapy答案:D97.requests庫中,get()函數關于cookies使用說法錯誤的是。A、cookies不能通過headers參數傳遞B、cookies支持字典類型的數據C、ookies支持CookieJar類對象D、cookies可以通過headers參數傳遞答案:A98.關于robots協議的說法錯誤的是()。A、robots協議,沒有實際的約束力B、robots協議對遵守協議的'君子'有用,對于違背協議的人而言并沒有太大的作用C、違背robots協議可能會存在一定的法律風險D、robots協議,對爬蟲有實際的約束力,相當于網站的防火墻答案:D99.為了減少無意義的等待,我們在發送HTTP請求時可以使用()參數設置超時時長。A、wait_timeB、timeoutC、WebdriverWaitD、time答案:B100.正則表達式中匹配0個或任意多個x使用()。A、x?B、x+C、x!D、x?答案:D101.BeautifulSoup的導包方式為()。A、importBeautifulSoupB、importBeautifulSoupC、importbs4D、importBeautiful_Soup答案:C102.以下Python語言關鍵字在異常處理結構中用來捕獲特定類型異常的選項是()。A、forB、lambdaC、inD、expect答案:D103.JavaScript編寫的程序,一般在()中運行。A、pythonB、瀏覽器C、服務器D、需要安裝jdk答案:B104.'<ul><li>1<li><li>2<li><li>3<li><li>4<li><li>5<li><li>6<li><ul>',()能獲取內容為奇數的節點。A、soup.select('ulli:nth-child(odd)')B、soup.select('ulli:nth-child(even)')C、soup.select('ulli:[odd]')D、soup.select('ulli:[even]')答案:A105.'<divclass="class1class2"></div><divclass="class1"><pclass="class2"></p></div>',以下代碼()能選中只擁有'class2'樣式的節點。A、soup.select("class2")B、soup.select(".class2")C、soup.select("p.class2")D、soup.select(".class1.class2")答案:D106.URL地址'https://.baidu.?ie=utf-8&wd=python',其中屬于表示查詢字符串的是()。A、ie=utf-8&wd=pythonB、httpsC、baidu.D、wd=python答案:A107.lxml庫中,用于解析xml文件的方法是()。A、etree.parse()B、etree.XML()C、etree.HTML()D、etree.fromstring()答案:A108.關于Python循環結構,以下選項中描述錯誤的是()。A、遍歷循環中的遍歷結構可以是字符串、文件、組合數據類型和range()函數等B、reak用來跳出最內層for或者while循環,脫離該循環后程序從循環代碼后繼續執行C、每個continue語句只有能力跳出當前層次的循環D、Python通過for、while等保留字提供遍歷循環和無限循環結構答案:C109.正則表達式,"[a-zA-Z]?[^,]="的匹配結果是()。A、BotHEr,=B、utt=C、AmpleD、FIdD、lE7h=答案:B110.selenium中,WebDriverWait()參數,用于設置超時后拋出的異常信息。A、driverB、timeoutC、poll_frequencyD、ignore_exceptions答案:D111."發布人:系統管理員□□發布時間:2022-11-18□□來源:圖情信息中心".split('□')的執行結果是A、['發布人:系統管理員','□','發布時間:2022-11-18','□','來源:圖情信息中心']B、['發布人:系統管理員','發布時間:2022-11-18','來源:圖情信息中心']C、('發布人:系統管理員','□','發布時間:2022-11-18','□','來源:圖情信息中心')D、('發布人:系統管理員','發布時間:2022-11-18','來源:圖情信息中心')答案:A112.下列選項中,用于以二進制形式獲取響應內容的是()。A、status_codeB、textC、ontentD、string答案:C113.Python中要使用XPth解析需要()導入模塊。A、frometreeimportlxmlB、fromlxmlimportetreeC、frombs4importetreeD、frometreeimportbs4答案:B114.匹配4到12位的字母、數字、下劃線,且必須以字母開頭,以下正則的寫法正確的是()。A、^\w{4,12}$B、^[a-zA-Z]\w{4,12}$C、^[a-zA-Z]\w{3,11}$D、^[a-zA-Z]\d{3,11}$答案:C115.GET請求方法通過請求參數傳輸數據,最多只能傳輸()的數據。A、2KBB、4KBC、1MD、無限制答案:A116.()會對數據包進行一些改動,這時服務器可能會發現當前訪問的用戶是代理服務器,也可能會追查到客戶端的真實IP地址。A、高度匿名代理服務器B、普通匿名代理服務器C、透明代理服務器D、所有選項均不對答案:B117.requests庫中,get()函數能用于設置是否啟用SSL證書的參數是()。A、urlB、headersC、verifyD、proxies答案:C118.請求頭部信息中,()用于指定瀏覽器可以接受的字符集類型。A、hostB、Content-TypeC、acceptD、Accept-Charset答案:D119.表示同時選取文檔中的所有title和price元素()。A、//titleB、//priceC、//title&//priceD、//title|//price答案:D120.執行代碼x,y,z=sorted([1,3,2])之后,y的值為()A、1B、2C、3D、0答案:B121.以下選項中,不是Python語言保留字的是A、whileB、continueC、gotoD、for答案:C122.下列表達式不能匹配字符串abc123的是()。A、\w+B、\w{3,}C、\w{3,}\dD、\w{3,}+\d答案:D123.以下能用于解析網頁數據的是()。A、BeautifulSoupB、DNSC、hrefD、CSS答案:A124.URL地址'https://.baidu.?ie=utf-8&wd=python',其中屬于表示查詢字符串的是()。A、ie=utf-8&wd=pythonB、httpsC、baidu.D、wd=python答案:A125.為了保證獲取的源代碼中能夠正常顯示中文,需要response對象的()屬性將編碼格式設置為UTF-8。A、encodingB、requestC、headersD、text答案:A126.以下XPath謂語中,()能獲得滿足條件的倒數第二個節點。A、[max()-1]B、[last()-1]C、[position()-1]D、[position()>-1]答案:B127.正則表達式r'^wx-yz'能匹配()。A、wxyzB、wx-yzC、wxyz中的任1個字符D、除wxyz中的任意字符答案:B128.正則表達式中匹配0個或任意多個x使用()。A、x?B、x+C、x!D、x?答案:D129.下列路徑表達式中。用于選取第一個app元素的是()。A、/appstore/app(1)B、/appstore/app(first)C、/appstore/app[1]D、/appstore/app[first]答案:C130.正則匹配模式中,多行匹配,影響'^'和'$'的是()。A、re.SB、re.UC、re.AD、re.M答案:D131.()會將數據包原封不動地轉發給服務器,讓服務器認為當前訪問的用戶只是一個普通客戶端,而不是代理服務器。A、高度匿名代理服務器B、普通匿名代理服務器C、透明代理服務器D、所有選項均不對答案:A132.()又稱爬蟲協議,它是國際互聯網界通行的道德規范。A、HTTPB、RobotsC、rawlerD、Spider答案:B133.以下屬于PythonHTML和XML解析的第三方庫的是()。A、djangoB、networkxC、requestsD、BeautifulSoup答案:D134.bs4中,()表示HTML中的標簽,是最基本的信息組織單元。A、bs4.element.Tag類B、s4.element.NavigableString類C、bs4.BeautifulSoup類D、bs4.element.ment類答案:A135.XPath路徑表達式,用()描述屬性。A、/B、//C、[]D、答案:D136.robots文件中,()用于指定網絡爬蟲禁止訪問的目錄。A、llowB、user-agentC、disallowD、sitemap答案:C137.以下說法錯誤的是()。A、對于列表而言,在尾部追加元素比在中間位置插入元素速度更快一些,尤其是對于包含大量元素的列表。B、假設有非空列表x,那么x.append(3)、x=x+[3]與x.insert(0,3)在執行時間上基本沒有太大區別。C、使用Python列表的方法insert()為列表插入元素時會改變列表中插入位置之后元素的索引。D、假設x為列表對象,那么x.pop()和x.pop(-1)的作用是一樣的。答案:B138.關于selenium的隱式等待,以下說法錯誤的是()。A、隱式等待是設置一個全局最大等待時間,單位為秒(s)B、隱式等待使用WebDriver類的implicitly_wait()方法實現;C、WebDriver類的對象在定位元素時,每隔一段特定的時間就會輪詢一次節點樹,直到元素被發現為止D、隱式等待的時間到期后,需要多次重新設置答案:D139.為了減少無意義的等待,我們在發送HTTP請求時可以使用()參數設置超時時長。A、wait_timeB、timeoutC、WebdriverWaitD、time答案:B140.Chrome的開發工具中哪個選項中可以查找到requestheaders()。A、ElementsB、SourcesC、NetworkD、Performance答案:A判斷題1.get方法比post方法快。A、正確B、錯誤答案:A2.匹配對象.group()獲取整個正則表達式匹配到的結果。A、正確B、錯誤答案:A3.CSS用于向網頁中添加交互行為。A、正確B、錯誤答案:B4.ConnectTimeout和ReadTimeout又繼承自Timeout,Timeout繼承自RequestException。A、正確B、錯誤答案:A5.如果服務器返回的狀態碼為500,則表示客戶端發送的請求出現錯誤。A、正確B、錯誤答案:B6.正則表達式使用的模塊名是re。A、正確B、錯誤答案:A7.POST請求方法的參數信息會在URL地址中顯示。A、正確B、錯誤答案:B8.與真人瀏覽萬維網相比,網絡爬蟲能夠瀏覽的信息量更大,效率也更高。A、正確B、錯誤答案:A9.爬蟲從待抓取的IP地址隊列中依次IP地址,以找到對應的網站服務器。A、正確B、錯誤答案:A10.解碼使用的函數式是encode()。A、正確B、錯誤答案:B11.lxml中,root_node.find('.//price').text與root_node.find('.//price/text()')的運行結果相同。A、正確B、錯誤答案:B12.XPath使用路徑表達式選取XML文檔中的節點或者節點集。A、正確B、錯誤答案:A13.如果不是從瀏覽器發出的請求,則一定不能獲取到任何響應內容的。A、正確B、錯誤答案:B14.Python中使用可以使用open函數將圖片數據寫入磁盤,其操作模式為"wb"。A、正確B、錯誤答案:A15.為了加大爬蟲并發下載的速度,可以啟動任意多個線程抓取網頁。A、正確B、錯誤答案:A16.JSON是一種輕量級的數據交換格式。A、正確B、錯誤答案:A17.一般情況下,優先級隊列中的元素采取列表的形式來存儲。A、正確B、錯誤答案:A18.搜索引擎的爬行行為需要符合一定的規則,遵從一些命令或文件的內容。A、正確B、錯誤答案:A19.python中,已知x為非空列表,那么執行語句x[0]=3之后,列表對象x的內存地址不變。A、正確B、錯誤答案:A20.在使用命令創建爬蟲時,通常需要規定這個爬蟲將爬取的網頁域范圍。A、正確B、錯誤答案:A21.匹配對象.group(N)獲取正則表達式中第N個分組匹配到的結果。A、正確B、錯誤答案:A22.Open函數中a代表追加寫模式。A、正確B、錯誤答案:A23.對selenium而言,不同版本的瀏覽器驅動所支持的瀏覽器版本不同,在下載瀏覽器驅動程序之前,需要先查看當前瀏覽器的版本號。A、正確B、錯誤答案:A24.OCR技術可以處理任意類型圖像文件中的圖像。A、正確B、錯誤答案:B25.如果不是從瀏覽器發出的請求,則一定不能獲取到任何響應內容的。A、正確B、錯誤答案:B26.查看變量內存地址的Python內置函數是id()。A、正確B、錯誤答案:A27.爬蟲是一種編程語言。A、正確B、錯誤答案:B28.代理服務器介于客戶端和服務器之間。A、正確B、錯誤答案:A29.網站中的robots.txt可以無視。A、正確B、錯誤答案:B30.普通匿名代理服務器是爬蟲最理想的選擇。A、正確B、錯誤答案:B31.深層網頁是指大部分內容無法通過靜態鏈接獲取的,只能通過用戶提交一些關鍵詞才能獲取的網頁,如用戶注冊后內容才可見的網頁。A、正確B、錯誤答案:A32.訪問百度首頁必須使用post方法。A、正確B、錯誤答案:B33.正則表達式中.?代表匹配任意內容。A、正確B、錯誤答案:A34.語句dictTest={[1,2,3]:“test”}可以創建一個字典,并賦值給dictTest。A、正確B、錯誤答案:B35.服務器端可以記住用戶的登錄狀態,因此HTTP協議自身具有保持會話狀態的功能。A、正確B、錯誤答案:B36.一旦調用urlopen()函數時傳入了data參數,就需要將請求改為POST方式。A、正確B、錯誤答案:B37.get方法相比post方法能攜帶更多信息。A、正確B、錯誤答案:B38.創建BeatutifulSoup對象時,默認使用的解析器為Python標準庫。A、正確B、錯誤答案:A39.http協議翻譯為中文是超文本傳輸協議。A、正確B、錯誤答案:A40.如果路徑表達式以/開頭,那么該路徑代表著到達某個節點的絕對路徑。A、正確B、錯誤答案:A41.http基于tcp/ip協議。A、正確B、錯誤答案:A42.Open函數中w代表只讀模式。A、正確B、錯誤答案:B43.網頁編碼使用的函數式decode()。A、正確B、錯誤答案:B44.默認情況下,MongoDB建立的數據庫是db。A、正確B、錯誤答案:A45.Selenium不支持瀏覽器的功能,它不需要與第三方瀏覽器結合使用。A、正確B、錯誤答案:A46.優先級隊列會按級別順序取出元素,級別最高的最先取出。A、正確B、錯誤答案:A47.動態網頁是相對靜態網頁來說的,指使用動態網絡技術生成的網頁,動態網頁的后綴不僅僅是靜態文件常見的形式,通常在動態網址之后包含“?”符號。A、正確B、錯誤答案:A48.網絡爬蟲(WebCrawler)又稱網絡蜘蛛、網絡機器人,它是一種按照一定規則,自動瀏覽萬維網的程序或腳本。A、正確B、錯誤答案:A49.Selenium本身就具備瀏覽器的功能,它不需要使用驅動與第三方瀏覽器結合使用。A、正確B、錯誤答案:B50.Python中使用open函數將圖片寫入硬盤,其操作模式為"wb"。A、正確B、錯誤答案:A51.python中,同一個列表對象中所有元素必須為相同類型。A、正確B、錯誤答案:A52.一次HTTP通信的過程包括HTTP請求和HTTP響應。A、正確B、錯誤答案:A53.http協議中有get方法和post方法。A、正確B、錯誤答案:A54.爬蟲必須用python編寫。A、正確B、錯誤答案:B55.http返回的狀態碼代表成功的是500。A、正確B、錯誤答案:B56.在實際應用中,文件存儲和數據庫存儲各有利弊,文件存儲比較適合中小型網絡爬蟲,數據庫存儲比較適合大型網絡爬蟲。A、正確B、錯誤答案:A57.正則匹配對象.group()獲取整個正則表達式匹配到的結果。A、正確B、錯誤答案:A58.JSON比XML的語法更簡單,層次結構更加清晰,易于閱讀。A、正確B、錯誤答案:A59.普通匿名代理服務器是爬蟲最理想的選擇。A、正確B、錯誤答案:B60.使用Scrapy只需定義請求和響應對象,而請求的發送和響應的接收過程由Scrapy自動處理。A、正確B、錯誤答案:A61.Python字符串不能與數字直接相加,需要先將數字通過str()轉換為字符串后,方能處理。A、正確B、錯誤答案:A62.網絡爬蟲一旦在訪問過程中遇到一些網絡問題(如DNS故障、拒絕連接等),不會導致程序引發異常并停止運行。A、正確B、錯誤答案:B63.Robots協議全稱是“網絡爬蟲排除標準”,網站通過Robots協議告訴搜索引擎哪些頁面可以抓取,哪些頁面不能抓取。A、正確B、錯誤答案:A64.正則表達式中$代表行首。A、正確B、錯誤答案:B65.百度是通用性爬蟲。A、正確B、錯誤答案:A66.如果系統沒有安裝lxml解析器,那么程序將無法得到解析后的對象。A、正確B、錯誤答案:B67.如果服務器返回的狀態碼為500,則表示客戶端發送的請求出現錯誤。A、正確B、錯誤答案:B68.爬蟲又叫網頁蜘蛛、網絡機器人。A、正確B、錯誤答案:A69.表層網頁是指傳統搜索引擎可以索引的頁面,主要以超鏈接可以到達的靜態網頁構成的網頁。A、正確B、錯誤答案:A70.XPath使用路徑表達式選取XML文檔中的節點或者節點集。A、正確B、錯誤答案:A簡答題1.請求方法GET和POST的區別的是。答案:常用的請求方法包括GET和POST,其中GET用于請求服務器發送某個資源,POST用于向服務器提交表單或上傳文件,表單數據或文件的數據會包含在請求體中。請求方法GET和POST的區別主要體現兩個方面。–傳輸數據大?。篏ET請求方法通過請求參數傳輸數據,最多只能傳輸2KB的數據;POST請求方法通過實體內容傳輸數據,可以傳輸的數據大小沒有限制。–安全性:GET請求方法的參數信息會在URL中明文顯示,安全性比較低;POST請求方法傳遞的參數會隱藏在實體內容中,用戶看不到,安全性更高。2.請簡述robots的作用,并列舉和闡述robots.txt文件中的選項。答案:Robots協議又稱爬蟲協議,它是國際互聯網界通行的道德規范,用于保護網站數據和敏感信息,確保網站用戶的個人信息和隱私不受侵犯。robots.txt存放于網站的根目錄下,文件內容通常包含包含:User-agent:適用對象(用戶代理),若該選項的值為“?”,則說明robots.txt文件對任何網絡爬蟲均有效。Disallow:不允許訪問的目錄或文件Allow:允許訪問的目錄或文件Sitemap:站點地圖,告知網絡爬蟲網站地圖的路徑,主要說明網站更新時間、更新頻率、網址重要程度等信息。3.談談你在爬取圖片過程中的處理思路。答案:可從requests、lxml、bs4、selenium、多線程、scapy、反爬取、動手實踐等方面展開。4.請列舉并闡述網絡爬蟲的常見分類。答案:通用網絡爬蟲:又稱全網爬蟲,是指訪問全互聯網資源的網絡爬蟲。聚焦網絡爬蟲:又稱主題網絡爬蟲,是指有選擇性地訪問那些與預定主題相關網頁的網絡爬蟲,它根據預先定義好的目標,獲取所需要的數據。增量式網絡爬蟲:是指對已下載的網頁采取增量式更新,只抓取新產生或者已經發生變化的網頁的網絡爬蟲。深層網絡爬蟲:是指抓取深層網頁的網絡爬蟲,它要抓取的網頁層次比較深,需要通過一定的附加策略才能夠自動抓取,實現難度較大。5.常見的CSS選擇器有哪些,請舉例說明。答案:類別選擇器:根據類名選擇元素,類名前面用“.”進行標注例如,.intro表示選擇包含class="intro"的所有元素。元素選擇器:根據元素名稱選擇元素。例如,p表示選擇所有<p>元素ID選擇器:根據特定ID選擇元素,ID前面加上#進行標注。例如,#link1表示選擇特定ID的值為id='link1'的元素。屬性選擇器:根據元素的屬性選擇元素,屬性必須用[]進行包裹,可以是標準屬性或自定義屬性。例如,[target=_blank]表示選擇包含target="_blank"的所有元素。結構選擇器語法:選擇器1選擇器2說明:選擇器1和選擇器2中間用空格隔開,用來選擇選擇器1中的子孫元素(選擇器2)。子代選擇器語法:選擇器1>選擇器2說明:用來選擇選擇器1中的直接子元素(選擇器2)。并集選擇器語法:選擇器1,選擇器2交集選擇器選擇器1什么都不要加選擇器2說明:用于選擇同時符合選擇器1和選擇器2條件的元素。6.如何從已爬取的HTML代碼中提取所需的數據?請列舉請簡要說明。答案:可以把HTML代碼直接當作字符串處理,此時可以基于字符串的內容的特征,結合Python原生字符串處理方法中的拆分、查找、替換等進行提取;或使用正則表達式結合re模塊進行提取。也可以使用lxml,bs4等,把HTML代碼先渲染為DOM樹,后續使用XPATH、CSS選擇器等技術進行數據提取,最后使用正則對所提供的數據進行清洗。7.請列舉并描述正則表達式中有哪些量詞。答案:?:對于它前面的正則式,匹配0次或1次,等價于{0,1};+:對于它前面的正則式,匹配1次或多次,等價于{1,};?:對它前面的正則式,匹配0次或多次,等價于{0,};{m}:對其之前的正則式,匹配m次;{m,}:對其之前的正則式,匹配至少m次;{m,n}對其之前的正則式,匹配m~n次。8.請簡要說明什么是Cookie,它有什么用途?答案:Cookie是一種在用戶計算機上存儲小型文本文件的技術,用于在用戶與網站進行交互時收集和存儲有關用戶的信息。當用戶訪問一個網站時,網站會將一個包含特定信息的Cookie文件發送到用戶的瀏覽器,瀏覽器會將該Cookie存儲在用戶的計算機上。之后,當用戶再次訪問該網站時,瀏覽器會向服務器發送Cookie,服務器可以根據Cookie中的信息來識別用戶、跟蹤用戶行為等。9.Scrpay框架包含哪些組件?請簡要說明。答案:ScrapyEngine(引擎):負責Scheduler、Spiders、ItemPipeline、Downloader這幾個組件之間的通信,包括信號和數據的傳遞等。Scheduler(調度器):負責接收ScrapyEngine發送過來的Requests(請求),并按照一定的方式進行整理排列和入隊,在ScrapyEngine需要時再次將請求交還給ScrapyEngine。Downloader:負責下載由ScrapyEngine發送的所有Requests,并將其獲取到的Responses(響應)交還給ScrapyEngine,由ScrapyEngine交給Spiders進行處理。Spiders:負責處理所有Responses,從Responses中解析并提取Items封裝的數據,并將需要跟進的URL提交給ScrapyEngine,再次進入Scheduler。10.請列舉并描述正則表達式中有哪些元字符。答案:\d:匹配一個數字字符;\D:匹配1個非數字字符;\w:匹配一個單詞字符(A~z、0~9、_);\W:匹配1個非單詞字符;\s:匹配1個空白字符(\n、\r、\t、空格);\S:匹配1個非空白字符;.:在默認模式,匹配除了換行的任意字符。如果指定了標簽DOTALL,它將匹配包括換行符的任意字符。11.Selenium查找元素的方法有哪些?請簡要說明答案:通過ID查找元素:使用driver.find_element_by_id()方法,傳入元素的ID值作為參數,即可查找到相應的元素。通過XPath查找元素:使用driver.find_element_by_xpath()方法,傳入元素的XPath表達式作為參數,即可查找到相應的元素。通過CSS選擇器查找元素:使用driver.find_element_by_css_selector()方法,傳入元素的CSS選擇器作為參數,即可查找到相應的元素。通過類名查找元素:使―用driver.find_element_by_class_name()方法,傳入元素的類名作為參數,即可查找到相應的元素。通過driver.find_element()方法,傳入by(查找方式)和value(查找內容)參數,即可查找到相應的元素12.你寫爬蟲的時候都遇到過什么反爬蟲措施,你最終是怎樣解決的?答案:用戶身份檢查:在請求網頁時攜帶User-Agent,將自己偽裝成一個瀏覽器,如此便可以繞過網站的檢測,避免出現被網站服務器直接拒絕訪問的情況。IP黑名單(封IP):–為防止網站運維人員從訪問量上推斷出網絡爬蟲的身份,可以降低網絡爬蟲訪問網站的頻率,如讓網絡爬蟲每抓取一次頁面數據就休息幾秒鐘,或者限制每天抓取的頁面數據的數量。–網絡爬蟲在訪問網站時,若反復使用同一IP地址進行訪問,則極易被網站認出網絡爬蟲的身份后進行屏蔽、阻止、封禁等。此時可以在網絡爬蟲和Web服務器之間設置代理服務器。驗證碼:有些網站在檢測到某個客戶端的IP地址訪問次數過于頻繁時,會要求該客戶端進行登錄驗證,并隨機提供一個驗證碼。此時可以使用圖像識別等技術識別驗證碼。字體反爬、js反爬、數據加密等:根據實際情況分析解決。案例分析(總共3題)1.2、目標網站url地址為https://cq.fang.ke./loupan/page/1-50,共計50頁,頁面效果及核心代碼如下圖所示。請結合所學知識,完成以下需求1-1.?爬取這50個頁面的HTML代碼;
?從爬取的HTML中,提取出樓盤名稱、地址、房間大小、房價;
?將提取到的信息存入house_data.csv文件中。
頁面核心html代碼
<ul>
<liclass="list">
<ahref="detail?id=1"class="pic_link">
<imgsrc="image1.jpg"alt="金洲云瀾棲"/>
</a>
<divclass="msg_box">
<divclass="title">
<ahref="detail?id=1">金洲云瀾棲</a>
<span>16.8萬元</span>
</div>
<divclass="size">一室/50平米</div>
<divclass="address">重慶.江津</div>
</div>
</li>
<liclass="list">結構同上,共20條,...</li>
</ul>答案:importrequests
Frombs4importBeautifulSoup
Importpandasaspd
#提取出樓盤名稱、地址、房間大小、房價、圖片地址
Defget_info(html):
soup=BeautifulSoup(html,features='lxml')
#每一頁的數據
page_datas=[]
#為獲得更高的性能,先獲得所有的li節點
li_nodes=soup.select('.list')
#在每一個li節點內部,局部查找,提取數據
forli_nodeinli_nodes:
pic_url=li_node.select_one('.pic_link>img').attrs['src']
name=li_node.select_one('.msg_box>.title>a').text
address=li_node.select_one('.address').text
size=li_node.select_one('.size').text
price=li_node.select_one('.msg_box>.title>span').text
page_datas.append({'樓盤名稱':name,
'地址':address,
'房間大小':size,
'房價':price,
'圖片地址':pic_url})
returnpage_datas
If__name__=='__main__':
datas=[]
forpageinrange(1,50+1):
#爬取數據
url=f'https://cq.fang.ke./loupan/page/{page}'
rsp=requests.get(url)
html=rsp.text
#解析并獲得每一頁的數據
page_datas=get_info(html)
#將每頁的數據,合并到datas中
datas.extend(page_datas)
#創建DataFrame對象
df=pd.DataFrame(datas)
#寫入csv文件
df.to_csv('house_data.csv',index=False)2.1、現有html代碼字符串,且已存入html變量中,根據要求完成后續作答。html="""<tableclass="rk-table"><tr><th>排名</th><th>學校名稱</th><th>省份</th><th>類型</th></tr><tr><tdclass="rank">1</td><td><divclass="univname"><ahref="..."class="namecn">清華大學</a><ahref="..."class="nameen">TsinghuaUniversity</a><pclass="tags">雙一流/985/211</p></div></td><tdid="address">北京</td><td><span>綜合</span></td></tr></table>"""2-1.使用庫解析該字符串(0.5分)答案:#b4實現
Frombs4importBeautifulSoup
Soup=BeautifulSoup(html)
#lxml實現
Fromlxmlimportetree
Root_node=etree.HTML(html)2-2.獲取排名、學校中文名稱、省份、類型信息,并分別存入rank、name、address、category變量中。(0.5分)答案:#b4實現
Rank=soup.select('.rank')[0].text
Name=soup.select_one('.').text
Address=soup.select_one('#address').text
Category=soup.select('span')[0].text
Print(rank,name,address,category)
#lxml實現
Rank=root_node.find('//td[class="rank"]').text
Name=root_node.find('//a[class="namecn"]').text
Address=root_node.find('//td[id="address"]')[0].text
Category=root_node.find('//span').text
Print(rank,name,address,category)3.3、目標地址:https://.kugou
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 紙漿設備轉讓協議書
- 項目轉讓協議書模板
- 家屬不認補償協議書
- 學籍檔案托管協議書
- 兄妹繼承相爭協議書
- 快遞保險協議書范本
- 商場商鋪轉租協議書
- 物業相關事項協議書
- 特聘專家調解協議書
- 事故終結處理協議書
- 干部檔案專項審核工作重點難點問題
- 創造性思維與創新方法Triz版知到章節答案智慧樹2023年大連理工大學
- 室外消防鋼絲網骨架塑料復合PE管施工及方案
- 大念住經 排版用于打印
- 《產業基礎創新發展目錄(2021年版)》(8.5發布)
- GB/T 31266-2014過磷酸鈣中三氯乙醛含量的測定
- GB/T 16422.3-2014塑料實驗室光源暴露試驗方法第3部分:熒光紫外燈
- 計量器具校準記錄
- DB36-T 1694-2022 餐廚垃圾集約化養殖黑水虻技術規程
- 技術合同認定登記培訓課件
- 十二講船舶制冷裝置課件
評論
0/150
提交評論