Python網絡爬蟲技術項目教程 練習題答案_第1頁
Python網絡爬蟲技術項目教程 練習題答案_第2頁
Python網絡爬蟲技術項目教程 練習題答案_第3頁
Python網絡爬蟲技術項目教程 練習題答案_第4頁
Python網絡爬蟲技術項目教程 練習題答案_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第一章爬取靜態網頁一、選擇題1.A2.C3.A4.D5.D簡答題1.請簡述Requests的基本功能Requests是一個基于Apache2協議開源的PythonHTTP庫,號稱是“為人類準備的HTTP庫”。以上是Requests官網對其模塊的總體介紹。Requests完全滿足當今Web的需求:Keep-Alive&連接池國際化域名和URL帶持久Cookie的會話瀏覽器式的SSL認證自動內容解碼基本/摘要式的身份認證優雅的key/valueCookie自動解壓Unicode響應體HTTP(S)代理支持文件分塊上傳流下載連接超時分塊請求支持.netrc2.Cookies的定義?Cookie是請求頭的一部分,同時也web瀏覽器的憑證,根據實際情況,有時候要指定Cookie參數,requests將Cookie從中剝離出來,可以使用cookies參數直接指定。3.簡述從Response對象(r)中可以獲取到的內容從Response對象(r)中可以獲取到:實際請求的URL:r.url推測的文本編碼:r.encoding二進制相應內容:r.contentJSON相應內容:r.json()原始相應內容:r.raw響應狀態碼:r.status_code響應頭:r.headersCookie:r.cookies響應歷史:r.history4.簡述一下BeautifulSoup的作用 BeautifulSoup是一個HTML/XML的解析器,主要的功能是解析和提取HTML/XML數據。BeautifulSoup支持Python標準庫中的HTML解析器,還支持一些第三方的解析器。通常情況下我們不會使用Python默認的解析器,而是使用lxml解析器,lxml解析器更加強大,速度更快,推薦使用lxml解析器。5.簡述Scrapy架構中包含的組件引擎(ScrapyEngine)

用來處理整個系統的數據流(框架核心)調度器(Scheduler)

用來接受引擎發過來的請求,壓入隊列中,并在引擎再次請求的時候返回.可以想像成一個URL(抓取網頁的網址或者說是鏈接)的優先隊列,由它來決定下一個要抓取的網址是什么,同時去除重復的網址下載器(Downloader)

用于下載網頁內容,并將網頁內容返回給蜘蛛(Scrapy下載器是建立在twisted這個高效的異步模型上的)爬蟲(Spiders)

爬蟲是主要干活的,用于從特定的網頁中提取自己需要的信息,即所謂的實體(Item)。用戶也可以從中提取出鏈接,讓Scrapy繼續抓取下一個頁面項目管道(ItemPipeline)

負責處理爬蟲從網頁中抽取的實體,主要的功能是持久化實體、驗證實體的有效性、清除不需要的信息。當頁面被爬蟲解析后,將被發送到項目管道,并經過幾個特定的次序處理數據。下載器中間件(DownloaderMiddlewares)

位于Scrapy引擎和下載器之間的框架,主要是處理Scrapy引擎與下載器之間的請求及響應。爬蟲中間件(SpiderMiddlewares)

介于Scrapy引擎和爬蟲之間的框架,主要工作是處理蜘蛛的響應輸入和請求輸出。調度中間件(SchedulerMiddewares)

介于Scrapy引擎和調度之間的中間件,從Scrapy引擎發送到調度的請求和響應。第二章爬取動態網頁一、選擇題1.D2.C3.C4.B5.C簡答題1.簡述JSON對象的書寫方式JSON對象使用在大括號({})中書寫,對象可以包含多個

key/value(鍵/值)對。其中:key必須是字符串,value可以是合法的JSON數據類型(字符串,數字,對象,數組,布爾值或null)。key和value中使用冒號(:)分割。每個key/value對使用逗號(,)分割。2.簡述JSON的基本概念JSON(JavaScript

ObjectNotation,JS對象簡譜)是一種輕量級的數據交換格式。它基于ECMAScript(歐洲計算機協會制定的js規范)的一個子集,采用完全獨立于編程語言的文本格式來存儲和表示數據。簡潔和清晰的層次結構使得JSON成為理想的數據交換語言。易于人閱讀和編寫,同時也易于機器解析和生成,并有效地提升網絡傳輸效率。3.PhantomJS的特點PhantomJS有如下特點:PhantomJS是一個基于webkit內核、無界面的瀏覽器,即它就是一個瀏覽器,只是其內的點擊、翻頁等人為相關操作需要程序設計實現;PhantomJS提供JavascriptAPI接口,可以通過編寫JS程序直接與webkit內核交互;PhantomJS的應用:無需瀏覽器的Web測試、網頁截屏、頁面訪問自動化、網絡監測。4.簡述Selenium框架的作用Selenium是支持web瀏覽器自動化的一系列工具和庫的綜合項目。它提供了擴展來模擬用戶與瀏覽器的交互,用于擴展瀏覽器分配的分發服務器,以及用于實現

W3CWebDriver規范的基礎結構,該規范允許您為所有主要Web瀏覽器編寫可互換的代碼。Selenium的核心是

WebDriver,這是一個編寫指令集的接口,可以在許多瀏覽器中互換運行。5.簡述WebDriver的定位策略定位器Locator描述classname定位class屬性與搜索值匹配的元素(不允許使用復合類名)cssselector定位CSS選擇器匹配的元素id定位id屬性與搜索值匹配的元素name定位name屬性與搜索值匹配的元素linktext定位linktext可視文本與搜索值完全匹配的錨元素partiallinktext定位linktext可視文本部分與搜索值部分匹配的錨點元素。如果匹配多個元素,則只選擇第一個元素。tagname定位標簽名稱與搜索值匹配的元素xpath定位與XPath表達式匹配的元素第三章爬取APP數據一、選擇題1.C2.A3.A4.A5.B二、簡答題1.簡述Fiddler的功能 Fiddler是一個HTTP的調試代理,以代理服務器的方式,監聽系統的HTTP網絡數據流動。Fiddler可以讓你檢查所有的HTTP通訊,設置斷點,以及Fiddler所有的“進出”的數據。Fiddler還包含一個簡單卻功能強大的基于JScript.NET事件腳本子系統,它可以支持眾多的HTTP調試任務。2.Fiddler的主界面監控面板中,Web會話性能統計信息可以直接在監控面板中的什么窗口查看? Statistics窗口3.Fiddler的主界面監控面板中,Web網絡會話內容可以直接在監控面板中的什么窗口查看? Inspectors窗口4.查看一個或多個Web會話的傳輸時間線的瀑布圖可以直接在監控面板中的什么窗口查看?TimeLine窗口 5.簡述Fiddler的主界面面板 工具面板、會話面板、監控面板、狀態面板第四章反爬蟲策略以及解決辦法一、選擇題1.D2.B3.D4.A5.C二、簡答題1.簡述三種反爬蟲策略以及其反爬策略內容反爬蟲策略之Headers:Headers是指網絡請求的頭部信息,也就是網絡請求過程中所攜帶的描述信息,允許您對HTTP請求和響應頭執行各種操作。基于Headers的反爬蟲策略常見的為:根據User-Agent識別瀏覽器行為;根據Cookie識別用戶信息;根據Referer識別鏈路、根據Content-Type識別數據類型。 反爬蟲策略之Cookie:Cookie是請求頭的一部分,同時也web瀏覽器的憑證,根據實際情況,有時候要指定Cookie參數。requests將Cookie從中剝離出來,可以使用cookies參數直接指定。在爬取有些網頁是要求登錄之后的才能爬取,所以要和服務器一直保持登錄狀態,有時的策略不都指定cookies,而是會使用session來完成,Session提供的API和requests是一樣的,并且可將Cookie自動保存。反爬蟲策略之Proxies:服務器會針對用戶操作對用戶行為進行記錄,當根據規則匹配識別為程序操作,可能會進行IP封禁的操作。當我們發現IP已經被封了,此IP就再也訪問不到目標網站了。為了面對封禁IP的操作,我們可以:做更完善的設置,避免瀏覽器識別并封禁IP;使用代理IP,隱藏真實IP;設置好訪問間隔,避免服務器壓力過大。2.簡單介紹Tesseract,并列舉出Pytesseract的函數Tesseract,一款由HP實驗室開發由Google維護的開源OCR(OpticalCharacterRecognition,光學字符識別)引擎,與MicrosoftOfficeDocumentImaging(MODI)相比,我們可以不斷的訓練的庫,使圖像轉換文本的能力不斷增強;如果團隊深度需要,還可以以它為模板,開發出符合自身需求的OCR引擎函數描述get_languages返回PytesseractOCR當前支持的所有語言。get_tesseract_version返回安裝在系統中的Pytesseract版本。image_to_string返回未修改的輸出作為字符串從PytesseractOCR處理image_to_boxes包含識別字符及其框邊界的返回結果image_to_data返回結果包含框邊界、信任和其他信息。image_to_osd返回結果包含有關方向和腳本檢測的信息。image_to_alto_xml返回以Pytesseract的ALTOXML格式的形式產生。run_and_get_output返回PytesseractOCR的原始輸出。第五章反爬策略優化一、選擇題1.C2.A二、簡答題1.程序連接了Redis后,就可以使用API操作Redis中的數據,其中:set(name,value,ex=None,px=None,nx=False,xx=False),參數分別代表什么意思?其中參數分別是:name:指定存儲的key,如果相同,value會被覆蓋value:設置key對應存儲

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論