下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Python網(wǎng)絡(luò)爬蟲與數(shù)據(jù)采集試題選擇題(每題2分)1、下列哪個選項不屬于HTTP協(xié)議的請求方法?(B)GETPUSHPUTPOST下列哪個HTML標(biāo)簽可以設(shè)置超鏈接?(C)<p><div><a><h1>正則表達(dá)式“\d{3}-\d{8}|\d{4}-\d{8}”能匹配下列哪個字符串?(A)010-123456780432-12345670101234567804321234568Requests庫中,可以查看響應(yīng)狀態(tài)碼的方法是(D)textencodingcookiesstatus_code關(guān)于JavaScript說法不正確的是(B)JavaScript是一種面向?qū)ο?、動態(tài)類型的解釋性語言JavaScript主要運(yùn)行在網(wǎng)站服務(wù)器上瀏覽器中的頁面是在HTML的基礎(chǔ)上經(jīng)過JavaScript加工處理后生成的JavaScript可以寫在HTML的<script>標(biāo)簽中下列NumPy方法中,能夠?qū)蓚€二維數(shù)組橫向拼接的是(D)matinvvstackhstack以下不是Scrapy框架組件的是(C)????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????EngineSchedulerProcesserPipeline在Scrapy框架中,Downloader下載頁面內(nèi)容后結(jié)果經(jīng)Engine發(fā)送到哪個組件?????????????????????????????????????????????????????????????????????????????????????????????????(A)???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????SpidersPipelineScheduler以上均不正確Scrapy項目的settings.py文件中,指定log的最低級別的設(shè)置項是(C)BOT_NAMEDOWNLOAD_DELAYLOG_LEVELUSER_AGENTRequestHeader中指定是否需要持久連接的是(D)AcceptRefererRangeConnection判斷題(每題2分)Python字符串操作中的strip方法可以去掉字符串左、右側(cè)的空格(√)python_whois庫可以查詢網(wǎng)站所有者的相關(guān)信息(√)正則表達(dá)式中“$”匹配前面的子表達(dá)式0次或1次(x)SQL是一種小巧易用的輕量型關(guān)系數(shù)據(jù)庫系統(tǒng)(x)pandas中的Series數(shù)據(jù)類型的特點是相比普通的一維數(shù)組能存放更多數(shù)據(jù)(x)Matplotlib可以用于繪制圖表。(√)Selenium是一個專門用于開發(fā)Python爬蟲的瀏覽器(x)Selenium中模擬鍵盤輸入的函數(shù)是send_keys()(√)Python自帶的單元測試模塊是unittest(√)某同學(xué)認(rèn)為自己開發(fā)的爬蟲對網(wǎng)站的影響很小,可以忽略robots.txt中的內(nèi)容(x)三、填空題(每題2分)Robots協(xié)議旨在讓網(wǎng)站訪問者(或訪問程序)了解該網(wǎng)站的信息抓取限制。HTTP請求中的POST方法向指定資源提交數(shù)據(jù)進(jìn)行處理請求。正則表達(dá)式中表示匹配任意數(shù)字的是“[0-9]”。Chrome開發(fā)者工具中的Sources面板主要用來調(diào)試JavaScript。網(wǎng)絡(luò)API使用約定XML和JSON格式呈現(xiàn)數(shù)據(jù)。Redis是一個開源的鍵值對存儲數(shù)據(jù)庫。Selenium可以操縱瀏覽器進(jìn)行一些類似于普通用戶的行為。瀏覽器一般把Cookie數(shù)據(jù)放在HTTP請求中的Header數(shù)據(jù)中。PyQuery可以類似jQuery的形式解析網(wǎng)頁,并支持CSS選擇器。驗證碼的英文名稱縮寫為CAPTCHA。四、簡答題(每題4分)1.請使用正則表達(dá)式匹配下列字符串(1)只能輸入數(shù)字。(2)只能輸入非零的正整數(shù)(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請求,只不過返回的響應(yīng)中沒有具體的內(nèi)容,用于獲取報頭。(3)POST:向指定資源提交數(shù)據(jù)進(jìn)行處理請求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請求體中。POST請求可能會導(dǎo)致新的資源的建立和/或已有資源的修改。(4)PUT:從客戶端向服務(wù)器傳送的數(shù)據(jù)取代指定的文檔的內(nèi)容。(5)DELETE:請求服務(wù)器刪除指定的頁面。(每點1分)請舉例說明5種反爬蟲的方式(4分)識別RequestHeaders:通過驗證headers中的User-Agent信息來判定當(dāng)前訪問是否來自常見的界面瀏覽器。更復(fù)雜的headers驗證則會要求驗證Referer、Accept-encoding等信息。驗證碼:辨別計算機(jī)程序和人類用戶的不同,廣泛用于限制異常訪問。限制或封禁IP地址:判定為爬蟲后限制甚至封禁來自當(dāng)前IP地址的訪問。更改服務(wù)器返回的信息:通過加密信息、返回虛假數(shù)據(jù)等方式保護(hù)服務(wù)器返回的信息。賬號限制:只有已登錄的賬號才能夠訪問網(wǎng)站數(shù)據(jù)。(每點1分)請簡述Scrapy包含的組件及其功能。(至少舉出5個組件)(4分)引擎(Engine):用于處理整個系統(tǒng)的數(shù)據(jù)流處理,觸發(fā)事務(wù),是框架的核心。調(diào)度器(Scheduler):用于接受引擎發(fā)送的請求,將請求放入隊列中,并在引擎再次請求的時候返回。它決定下一個要抓取的網(wǎng)址,同時擔(dān)負(fù)著網(wǎng)址去重這一重要工作。下載器(Downloader):用于下載網(wǎng)頁內(nèi)容,并將網(wǎng)頁內(nèi)容返回給爬蟲。它的基礎(chǔ)是twisted,一個Python網(wǎng)絡(luò)引擎框架。爬蟲(Spiders):用于從特定的網(wǎng)頁中提取自己需要的信息,即Scrapy中所謂的實體(Item);也可以從中提取鏈接,讓Scrapy繼續(xù)抓取下一個頁面。管道(Pipeline):負(fù)責(zé)處理爬蟲從網(wǎng)頁中抽取的實體,主要的功能是持久化信息、驗證實體的有效性、清洗信息等。當(dāng)頁面被爬蟲解析后,將被發(fā)送到管道,并經(jīng)過特定的程序來處理數(shù)據(jù)。(每點1分)5.請說明Scrapy爬蟲的工作過程?(4分)第1步,引擎打開一個網(wǎng)站,找到處理該網(wǎng)站的爬蟲,并向該爬蟲請求第一個要抓取的URL。第2步,引擎從爬蟲中獲取到第一個要抓取的URL并在調(diào)度器中以requests調(diào)度。第3步,引擎向調(diào)度器請求下一個要抓取的URL。第4步調(diào)度器返回下一個要抓取的URL給引擎,引擎將URL通過下載器中間件轉(zhuǎn)發(fā)給下載器。一旦頁面下載完畢,下載器會生成一個該頁面的Responses,并將其通過下載器中間件發(fā)送給引擎。引擎從下載器中接收到Responses并通過爬蟲中間件發(fā)送給爬蟲處理。之后爬蟲處理Responses并返回抓取的Item及發(fā)送(跟進(jìn)的)新的Requests給引擎。引擎將抓取的Item傳遞給管道,將(爬蟲返回的)Requests傳遞給調(diào)度器。重復(fù)第2步開始的過程直到調(diào)度器中沒有更多的Requests,最終引擎關(guān)閉網(wǎng)站。五、應(yīng)用題(20分)1.請使用Matplotlib繪制[-π,π]區(qū)間內(nèi)的余弦函數(shù)圖像,要求曲線顏色為紅色。解答:frommatplotlibimportpyplotimportnumpyasnpx=np.linspace(-np.pi,np.pi)pyplot.plot(x,np.cos(x),color='red')pyplot.show()2.請使用Scrapy框架編寫Python程序,爬取豆瓣網(wǎng)首頁()上所有a標(biāo)簽的文字內(nèi)容。解答:#Items.pyclassTextItem(scrapy.Item):text=scrapy.Field()#DoubanSpider.pyimportscrapyfromscrapy.selectorimportSelectorfrom..itemsimportTextItemclassDoubanspiderSpider(scrapy.Spider):name='DoubanSpider'allowed_domains=['']start_urls
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 吉林師范大學(xué)《媒體系統(tǒng)設(shè)計》2021-2022學(xué)年第一學(xué)期期末試卷
- 制造企業(yè)生產(chǎn)主管工作報告制度
- 竹木纖維墻裙美化校園環(huán)境方案
- 吉林師范大學(xué)《代數(shù)與群論》2021-2022學(xué)年第一學(xué)期期末試卷
- 吉林大學(xué)《藥物流行病學(xué)》2021-2022學(xué)年第一學(xué)期期末試卷
- 吉林大學(xué)《土力學(xué)》2021-2022學(xué)年第一學(xué)期期末試卷
- 幼兒園溝通安全管理方案
- 2024個人房屋租賃合同書2
- 2024電腦銷售合同模板下載
- 高層建筑鋼結(jié)構(gòu)吊裝施工方案
- DZ∕T 0214-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 銅、鉛、鋅、銀、鎳、鉬(正式版)
- HYT 087-2005 近岸海洋生態(tài)健康評價指南
- 人教版五年級美術(shù)學(xué)科試卷(附帶答案和考察要點解說)
- 士官生生涯規(guī)劃
- 青年你為什么要入團(tuán)-團(tuán)員教育主題班會-熱點主題班會課件
- (正式版)SHT 3158-2024 石油化工管殼式余熱鍋爐
- 內(nèi)蒙古呼和浩特市回民區(qū)2023-2024學(xué)年七年級上學(xué)期期中語文試題
- 2024年畜禽屠宰企業(yè)獸醫(yī)衛(wèi)生檢驗人員考試試題
- (高清版)WST 433-2023 靜脈治療護(hù)理技術(shù)操作標(biāo)準(zhǔn)
- 電氣職業(yè)生涯發(fā)展展示
- 2023-2024學(xué)年蘇科版七年級數(shù)學(xué)上冊《3.6整式的加減》同步練習(xí)題(附答案)
評論
0/150
提交評論