《Python網(wǎng)絡(luò)爬蟲》 課件全套 龔衛(wèi) 第1-5單元-爬取靜態(tài)網(wǎng)頁(yè)- 爬蟲優(yōu)化策略_第1頁(yè)
《Python網(wǎng)絡(luò)爬蟲》 課件全套 龔衛(wèi) 第1-5單元-爬取靜態(tài)網(wǎng)頁(yè)- 爬蟲優(yōu)化策略_第2頁(yè)
《Python網(wǎng)絡(luò)爬蟲》 課件全套 龔衛(wèi) 第1-5單元-爬取靜態(tài)網(wǎng)頁(yè)- 爬蟲優(yōu)化策略_第3頁(yè)
《Python網(wǎng)絡(luò)爬蟲》 課件全套 龔衛(wèi) 第1-5單元-爬取靜態(tài)網(wǎng)頁(yè)- 爬蟲優(yōu)化策略_第4頁(yè)
《Python網(wǎng)絡(luò)爬蟲》 課件全套 龔衛(wèi) 第1-5單元-爬取靜態(tài)網(wǎng)頁(yè)- 爬蟲優(yōu)化策略_第5頁(yè)
已閱讀5頁(yè),還剩287頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Python網(wǎng)絡(luò)爬蟲導(dǎo)言教學(xué)概述課程性質(zhì)描述

《Python網(wǎng)絡(luò)爬蟲》是一門基于工作過(guò)程開發(fā)出來(lái)的學(xué)習(xí)領(lǐng)域課程,是大數(shù)據(jù)、人工智能相關(guān)專業(yè)職業(yè)核心課程。本課程注重對(duì)學(xué)生職業(yè)能力和創(chuàng)新精神、實(shí)踐能力的培養(yǎng),培養(yǎng)學(xué)生利用主流爬蟲框架進(jìn)行爬蟲項(xiàng)目的設(shè)計(jì)和開發(fā)。是融理論和實(shí)踐一體化,教、學(xué)、做一體化的專業(yè)課程,是工學(xué)結(jié)合課程。

適用專業(yè):大數(shù)據(jù)、人工智能相關(guān)專業(yè)。開設(shè)課時(shí):56建議課時(shí):56導(dǎo)言教學(xué)概述典型工作任務(wù)描述大數(shù)據(jù)時(shí)代,信息的采集是一項(xiàng)重要的工作,如果單純靠人力進(jìn)行信息采集,不僅低效繁瑣,搜集的成本也會(huì)提高,我們可以使用網(wǎng)絡(luò)爬蟲對(duì)數(shù)據(jù)信息進(jìn)行自動(dòng)采集,比如應(yīng)用于搜索引擎中對(duì)站點(diǎn)進(jìn)行爬取收錄,應(yīng)用于數(shù)據(jù)分析與挖掘中對(duì)數(shù)據(jù)進(jìn)行采集,應(yīng)用于金融分析中對(duì)金融數(shù)據(jù)進(jìn)行采集,除此之外,還可以將網(wǎng)絡(luò)爬蟲應(yīng)用于輿情監(jiān)測(cè)與分析、目標(biāo)客戶數(shù)據(jù)的收集等各個(gè)領(lǐng)域。我們可以根據(jù)爬取對(duì)象的不同設(shè)置網(wǎng)絡(luò)爬蟲的典型工作任務(wù),包括爬取靜態(tài)網(wǎng)頁(yè)、爬取動(dòng)態(tài)網(wǎng)頁(yè)、爬取APP數(shù)據(jù),另外,我們?cè)谂廊?shù)據(jù)過(guò)程中會(huì)遇到反爬蟲以及爬取效率的困擾,我們將反爬蟲策略及其解決辦法,分布式爬蟲優(yōu)化也作為典型工作任務(wù)。導(dǎo)言知識(shí)準(zhǔn)備課程學(xué)習(xí)目標(biāo)導(dǎo)言基本理論方面掌握爬蟲程序設(shè)計(jì)理念;掌握數(shù)據(jù)提取和存儲(chǔ)思想;掌握Scrapy爬蟲框架設(shè)計(jì)思想。知識(shí)準(zhǔn)備課程學(xué)習(xí)目標(biāo)導(dǎo)言基本技能方面熟練掌握Requests請(qǐng)求源數(shù)據(jù)的方法;熟練掌握BeautifulSoup4工具解析數(shù)據(jù)的方法;熟練掌握Mechanize模擬瀏覽器的方法;熟練掌握XPath、css解析數(shù)據(jù)的方法;熟練掌握Scrapy網(wǎng)頁(yè)爬取的工作流程;熟練掌握Scrapy中Item、Pipeline數(shù)據(jù)的序列化輸出方法;熟練掌握Scrapy中網(wǎng)頁(yè)及接口請(qǐng)求方法;熟練掌握Selenium自動(dòng)化操作方法;熟練掌握Fiddler的使用方法;熟練掌握CSV、MySQL數(shù)據(jù)存儲(chǔ)方法;掌握常見反爬蟲策略的解決辦法;能正確使用Scrapy+Redis進(jìn)行分布式數(shù)據(jù)采集工作。知識(shí)準(zhǔn)備課程學(xué)習(xí)目標(biāo)導(dǎo)言職業(yè)素養(yǎng)方面能夠完成真實(shí)業(yè)務(wù)邏輯向代碼的轉(zhuǎn)化;能夠獨(dú)立分析解決問(wèn)題;能夠快速準(zhǔn)確地查找參考資料;能夠與小組其他成員通力合作。知識(shí)準(zhǔn)備學(xué)習(xí)組織形式與方法導(dǎo)言親愛(ài)的同學(xué),歡迎你學(xué)習(xí)《Python網(wǎng)絡(luò)爬蟲》課程!與你過(guò)去使用的傳統(tǒng)教材相比,這是一種全新的學(xué)習(xí)材料,它幫助你更好地了解未來(lái)的工作及其要求,通過(guò)這本活頁(yè)式教材學(xué)習(xí)如何通過(guò)爬蟲采集網(wǎng)絡(luò)數(shù)據(jù)的重要的、典型的工作,促進(jìn)你的綜合職業(yè)能力發(fā)展,使你有可能在短時(shí)間內(nèi)成為網(wǎng)絡(luò)爬蟲的技能能手。主動(dòng)學(xué)習(xí)用好工作活頁(yè)團(tuán)隊(duì)協(xié)作把握好學(xué)習(xí)過(guò)程和學(xué)習(xí)資源知識(shí)準(zhǔn)備學(xué)習(xí)情境設(shè)計(jì)導(dǎo)言爬取天氣預(yù)報(bào)數(shù)據(jù)爬取百度搜索結(jié)果數(shù)據(jù)爬取汽車銷售分頁(yè)數(shù)據(jù)爬取百度圖片數(shù)據(jù)爬取漫畫數(shù)據(jù)爬取新聞?lì)怉PP接口數(shù)據(jù)常見反爬蟲策略及解決辦法處理輸入式驗(yàn)證碼校驗(yàn)分布式爬取電影數(shù)據(jù)謝謝課程名稱:Python網(wǎng)絡(luò)爬蟲Python網(wǎng)絡(luò)爬蟲第一單元爬取靜態(tài)網(wǎng)頁(yè)教學(xué)概述概述在網(wǎng)站設(shè)計(jì)中,純粹HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用)格式的網(wǎng)頁(yè)通常被稱為“靜態(tài)網(wǎng)頁(yè)”,靜態(tài)網(wǎng)頁(yè)是標(biāo)準(zhǔn)的HTML文件,它的文件擴(kuò)展名是.htm、.html,可以包含文本、圖像、聲音、FLASH動(dòng)畫、客戶端腳本和ActiveX控件及JAVA小程序等。靜態(tài)網(wǎng)頁(yè)是網(wǎng)站建設(shè)的基礎(chǔ),早期的網(wǎng)站一般都是由靜態(tài)網(wǎng)頁(yè)制作的。靜態(tài)網(wǎng)頁(yè)是相對(duì)于動(dòng)態(tài)網(wǎng)頁(yè)而言,是指沒(méi)有后臺(tái)數(shù)據(jù)庫(kù)、不含程序和不可交互的網(wǎng)頁(yè)。靜態(tài)網(wǎng)頁(yè)相對(duì)更新起來(lái)比較麻煩,適用于一般更新較少的展示型網(wǎng)站。靜態(tài)網(wǎng)頁(yè)有時(shí)也被稱為平面頁(yè)。靜態(tài)網(wǎng)頁(yè)面通常是超文本標(biāo)記語(yǔ)言文檔存儲(chǔ)為文件在文件系統(tǒng)里頭,并且可以通過(guò)HTTP訪問(wèn)網(wǎng)絡(luò)服務(wù)器。第一單元爬取靜態(tài)網(wǎng)頁(yè)0203爬取天氣預(yù)報(bào)數(shù)據(jù)爬取百度搜索爬取汽車銷售分頁(yè)數(shù)據(jù)01情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)01030204情境概述知識(shí)準(zhǔn)備案例講解總結(jié)PART01情境概述情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)情境概述學(xué)習(xí)情境描述教學(xué)情境描述:通過(guò)學(xué)習(xí)教師講授相關(guān)Requests、BeautifulSoup4、CSV技術(shù)的應(yīng)用,學(xué)習(xí)如何在實(shí)際靜態(tài)網(wǎng)頁(yè)數(shù)據(jù)采集中應(yīng)用Requests獲取網(wǎng)頁(yè)源數(shù)據(jù);使用BeautifulSoup4根據(jù)網(wǎng)頁(yè)源代碼提取目標(biāo)數(shù)據(jù);使用CSV將程序過(guò)程數(shù)據(jù)持久化存儲(chǔ)于本地。這就是一種最簡(jiǎn)單的三步靜態(tài)網(wǎng)頁(yè)數(shù)據(jù)爬蟲操作步驟和應(yīng)用。關(guān)鍵知識(shí)點(diǎn):爬蟲的原理、HTTP請(qǐng)求原理、Python庫(kù)環(huán)境管理、Requests網(wǎng)絡(luò)交互、BeautifulSoup4數(shù)據(jù)結(jié)構(gòu)化解析、IO流數(shù)據(jù)處理、CSV文件數(shù)據(jù)操作。關(guān)鍵技能點(diǎn):Python庫(kù)環(huán)境安裝、Requests請(qǐng)求源數(shù)據(jù)、BeautifulSoup4數(shù)據(jù)解析、CSV本地文件數(shù)據(jù)存儲(chǔ)。情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)情境概述本節(jié)課的學(xué)習(xí)目標(biāo)正確理解爬蟲的原理。正確掌握Http網(wǎng)絡(luò)交互及攜帶信息流程。正確掌握Python模塊庫(kù)(Requests、BeautifulSoup4、CSV)安裝管理應(yīng)用。能根據(jù)實(shí)際網(wǎng)頁(yè)源,分析網(wǎng)絡(luò)爬蟲請(qǐng)求限制。能根據(jù)實(shí)際網(wǎng)頁(yè)源,使用Requests獲取源代碼數(shù)據(jù)。能根據(jù)HTML源代碼結(jié)構(gòu),使用BeautifulSoup4獲取對(duì)應(yīng)節(jié)點(diǎn)對(duì)象。能使用BeautifulSoup4獲取對(duì)應(yīng)節(jié)點(diǎn)相關(guān)屬性及內(nèi)容數(shù)據(jù)。能使用CSV模塊,存儲(chǔ)程序過(guò)程中的數(shù)據(jù)到本地文件。情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)情境概述本節(jié)課的任務(wù)書完成通過(guò)PIP命令安裝及管理Requests、BeautifulSoup4、CSV庫(kù)。完成通過(guò)Requests獲取中國(guó)天氣網(wǎng)華北地區(qū)天氣預(yù)報(bào)網(wǎng)頁(yè)源代碼。完成通過(guò)BeautifulSoup4解析結(jié)構(gòu)化網(wǎng)頁(yè),并獲取對(duì)應(yīng)城市的各類天氣數(shù)據(jù)。完成通過(guò)CSV將解析到的各城市天氣數(shù)據(jù)本地結(jié)構(gòu)化存儲(chǔ)。情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)PART02知識(shí)準(zhǔn)備情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)知識(shí)準(zhǔn)備引導(dǎo)問(wèn)題了解什么是網(wǎng)絡(luò)爬蟲,說(shuō)明網(wǎng)絡(luò)爬蟲相關(guān)原理。了解網(wǎng)絡(luò)爬蟲的流程,并理解各流程都有什么意義。網(wǎng)絡(luò)爬蟲前我們需要準(zhǔn)備什么?如何獲取網(wǎng)頁(yè)源代碼?如何解析網(wǎng)頁(yè)源數(shù)據(jù)?如何本地化存儲(chǔ)數(shù)據(jù)?情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)知識(shí)準(zhǔn)備知識(shí)點(diǎn)介紹RequestsBeautifulSoup4CSV情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)知識(shí)準(zhǔn)備Requests情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)Requests框架介紹RequestsisanelegantandsimpleHTTPlibraryforPython,builtforhumanbeings.RequestsallowsyoutosendHTTP/1.1requestsextremelyeasily.There’snoneedtomanuallyaddquerystringstoyourURLs,ortoform-encodeyourPOSTdata.Keep-aliveandHTTPconnectionpoolingare100%automatic,thankstourllib3.Requests是一個(gè)基于Apache2協(xié)議開源的PythonHTTP庫(kù),號(hào)稱是“為人類準(zhǔn)備的HTTP庫(kù)”。Requests有如特點(diǎn):知識(shí)準(zhǔn)備情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)Keep-Alive&連接池國(guó)際化域名和URL帶持久Cookie的會(huì)話瀏覽器式的SSL認(rèn)證自動(dòng)內(nèi)容解碼基本/摘要式的身份認(rèn)證優(yōu)雅的key/valueCookie自動(dòng)解壓Unicode響應(yīng)體HTTP(S)代理支持文件分塊上傳流下載連接超時(shí)分塊請(qǐng)求支持.netrc知識(shí)準(zhǔn)備Requests環(huán)境安裝情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)pipinstallRequestspiplist在已安裝列表中顯示了requests2.21.0,表明版本為2.21.0的requests庫(kù)安裝成功。知識(shí)準(zhǔn)備Requests使用方法情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)導(dǎo)入模塊:importrequestsGET請(qǐng)求POST請(qǐng)求r=requests.get("")print(r.status_code)print(r.content)r=requests.post("")print(r.status_code)print(r.content)知識(shí)準(zhǔn)備情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)傳遞參數(shù)自定義請(qǐng)求頭指定Cookiesurl=""r=requests.get(url,params={"name":"zhangsan"})print(r.url)url='/'headers={'user-agent':'Mozilla/5.0'}r=requests.get(url=url,headers=headers)url="/cookies"r=requests.get(url,cookies={'myname':'lisi'})print(r.text)知識(shí)準(zhǔn)備情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)設(shè)置超時(shí)設(shè)置代理r=requests.get('',timeout=5)proxies={'http':'8:8118','http':':9999'}r=requests.get('',proxies=proxies,timeout=2)知識(shí)準(zhǔn)備情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)Session在爬取有些網(wǎng)頁(yè)是要求登錄之后的才能爬取,所以要和服務(wù)器一直保持登錄狀態(tài),而不用都指定cookies,那么可以使用session來(lái)完成,Session提供的API和requests是一樣的s=requests.Session()s.cookies=requests.utils.cookiejar_from_dict({"b":"d"})r=s.get('/cookies')print(r.text)r=s.get('/cookies')print(r.text)知識(shí)準(zhǔn)備情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)Response當(dāng)我們使用GET、POST或其他方式發(fā)起網(wǎng)絡(luò)請(qǐng)求后,就可以獲得一個(gè)Response對(duì)象,我們可以從這個(gè)對(duì)象中獲取所有我們想要的信息。實(shí)際請(qǐng)求的URL:r.url推測(cè)的文本編碼:r.encoding二進(jìn)制相應(yīng)內(nèi)容:r.contentJSON相應(yīng)內(nèi)容:r.json()原始相應(yīng)內(nèi)容:r.raw響應(yīng)狀態(tài)碼:r.status_code響應(yīng)頭:r.headersCookie:r.cookies響應(yīng)歷史:r.history知識(shí)準(zhǔn)備BeautifulSoup4情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)BeautifulSoup4框架介紹BeautifulSoupisaPythonlibraryforpullingdataoutofHTMLandXMLfiles.Itworkswithyourfavoriteparsertoprovideidiomaticwaysofnavigating,searching,andmodifyingtheparsetree.Itcommonlysavesprogrammershoursordaysofwork.BeautifulSoup是一個(gè)可以從HTML或XML文件中提取數(shù)據(jù)的Python庫(kù).它能夠通過(guò)你喜歡的轉(zhuǎn)換器實(shí)現(xiàn)慣用的文檔導(dǎo)航,查找,修改文檔的方式.BeautifulSoup會(huì)幫你節(jié)省數(shù)小時(shí)甚至數(shù)天的工作時(shí)間。BeautifulSoup是一個(gè)HTML/XML的解析器,主要的功能是解析和提取HTML/XML數(shù)據(jù)。BeautifulSoup支持Python標(biāo)準(zhǔn)庫(kù)中的HTML解析器,還支持一些第三方的解析器。通常情況下我們不會(huì)使用Python默認(rèn)的解析器,而是使用lxml解析器,lxml解析器更加強(qiáng)大,速度更快,推薦使用lxml解析器。知識(shí)準(zhǔn)備BeautifulSoup4環(huán)境安裝情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)pipinstallBeautifulSoup4piplist在已安裝列表中顯示了beautifulsoup44.7.1,表明版本為4.7.1的beautifulsoup4庫(kù)安裝成功。知識(shí)準(zhǔn)備BeautifulSoup4使用方法情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)獲取soup對(duì)象html.parserlxmlxmlhtml5lib格式化輸出prettify()獲取節(jié)點(diǎn)BS4對(duì)象soup.標(biāo)簽名find()系列方法select()方法知識(shí)準(zhǔn)備CSV情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu)介紹CSV:Comma-SeparatedValues,也稱為:逗號(hào)分隔值。其文件以純文本形式存儲(chǔ)表格數(shù)據(jù)(數(shù)字和文本)。純文本意味著該文件是一個(gè)字符序列,不含必須像二進(jìn)制數(shù)字那樣被解讀的數(shù)據(jù)。CSV文件由任意數(shù)目的記錄組成,記錄間以指定換行符分隔,默認(rèn)換行符為“\r\n”;每條記錄由字段組成,字段間以指定分隔符分割,默認(rèn)分隔符是逗號(hào),最常見的是逗號(hào)或制表符。通常,CSV所有記錄都有完全相同的字段序列,即有公共的數(shù)據(jù)結(jié)構(gòu)。通常都是純文本文件。常用打開方式為記事本或Excel。本身并不存在通用標(biāo)準(zhǔn),也不受存儲(chǔ)樣式限制。知識(shí)準(zhǔn)備CSV模塊安裝情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)Python內(nèi)置模塊,無(wú)需額外安裝進(jìn)入Python交互環(huán)境,importcsv驗(yàn)證知識(shí)準(zhǔn)備數(shù)據(jù)存儲(chǔ)操作情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)csv模塊實(shí)現(xiàn)用于以CSV格式讀取和寫入表格數(shù)據(jù)的類。csv模塊的reader和writer對(duì)象讀取和寫入序列。程序員還可以使用DictReader和DictWriter類以字典形式讀取和寫入數(shù)據(jù)。csv.reader 返回一個(gè)遍歷CSV文件各行的讀取器對(duì)象csv.writer 返回將數(shù)據(jù)寫入CSV文件的寫入器對(duì)象csv.register_dialect 注冊(cè)CSV方言csv.unregister_dialect 注銷CSV方言csv.get_dialect 返回具有給定名稱的方言csv.list_dialects 返回所有已注冊(cè)的方言csv.field_size_limit 返回解析器允許的當(dāng)前最大字段大小PART03案例講解情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)案例講解爬取天氣預(yù)報(bào)數(shù)據(jù)情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)實(shí)例:“中國(guó)天氣網(wǎng)”地區(qū)天氣預(yù)報(bào)頁(yè)面。案例講解爬取天氣預(yù)報(bào)數(shù)據(jù)情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)步驟:確定數(shù)據(jù)源確定目標(biāo)數(shù)據(jù)安裝環(huán)境構(gòu)建項(xiàng)目編寫網(wǎng)頁(yè)爬蟲程序編寫網(wǎng)頁(yè)解析程序編寫數(shù)據(jù)存儲(chǔ)程序運(yùn)行程序效果截圖案例講解爬取天氣預(yù)報(bào)數(shù)據(jù)情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)具體實(shí)操跟隨教材內(nèi)的步驟實(shí)施。PART04總結(jié)情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)總結(jié)總結(jié)情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)本情景,主要介紹了Requests、BeautifulSoup4、CSV的知識(shí),通過(guò)對(duì)案例的學(xué)習(xí),讓同學(xué)們掌握Requests、BeautifulSoup4、CSV的運(yùn)用。情境二:爬取百度搜索結(jié)果數(shù)據(jù)01030204情境概述知識(shí)準(zhǔn)備案例講解總結(jié)PART01情境概述情境二:爬取百度搜索結(jié)果數(shù)據(jù)情境概述學(xué)習(xí)情境描述教學(xué)情境描述:通過(guò)學(xué)習(xí)教師講授相關(guān)Mechanize、BeautifulSoup4、CSV技術(shù)的應(yīng)用,學(xué)習(xí)如何使用Mechanize模擬瀏覽器操作進(jìn)行網(wǎng)頁(yè)操作,并根據(jù)網(wǎng)頁(yè)結(jié)構(gòu)反饋和用戶行為操作獲取相關(guān)網(wǎng)頁(yè)源數(shù)據(jù);使用BeautifulSoup4根據(jù)網(wǎng)頁(yè)源代碼提取目標(biāo)數(shù)據(jù);使用CSV將程序過(guò)程數(shù)據(jù)持久化存儲(chǔ)于本地。關(guān)鍵知識(shí)點(diǎn):Mechanize環(huán)境管理、Mechanize框架理解、Mechanize模擬瀏覽器、Mechanize模擬用戶操作、Urllib2框架理解、BeautifulSoup4數(shù)據(jù)結(jié)構(gòu)化解析、IO流數(shù)據(jù)處理、CSV文件數(shù)據(jù)操作。關(guān)鍵技能點(diǎn):Mechanize環(huán)境管理、Mechanize模擬瀏覽器、Mechanize模擬用戶操作、BeautifulSoup4數(shù)據(jù)解析、CSV本地文件數(shù)據(jù)存儲(chǔ)。情境二:爬取百度搜索結(jié)果數(shù)據(jù)情境概述本節(jié)課的學(xué)習(xí)目標(biāo)正確理解網(wǎng)頁(yè)交互的原理。正確掌握Http網(wǎng)絡(luò)交互及攜帶信息。正確掌握Python模塊庫(kù)(Mechanize、BeautifulSoup4、CSV)安裝管理應(yīng)用。能使用Mechanize模擬瀏覽器發(fā)起HTTP請(qǐng)求訪問(wèn)。能使用Mechanize模擬用戶行為操作并獲取網(wǎng)頁(yè)源數(shù)據(jù)。能根據(jù)HTML源代碼結(jié)構(gòu),使用BeautifulSoup4獲取對(duì)應(yīng)節(jié)點(diǎn)對(duì)象。能使用BeautifulSoup4獲取對(duì)應(yīng)節(jié)點(diǎn)相關(guān)屬性及內(nèi)容數(shù)據(jù)。能使用CSV模塊,存儲(chǔ)程序過(guò)程中的數(shù)據(jù)到本地文件。情境二:爬取百度搜索結(jié)果數(shù)據(jù)情境概述本節(jié)課的任務(wù)書完成通過(guò)PIP命令安裝及管理Mechanize、BeautifulSoup4、CSV庫(kù)。完成通過(guò)Mechanize模擬瀏覽器訪問(wèn)百度資訊搜索首頁(yè),并模擬用戶搜索行為,獲取百度資訊搜索結(jié)果網(wǎng)頁(yè)源代碼。完成通過(guò)BeautifulSoup4結(jié)構(gòu)化網(wǎng)頁(yè),并獲取對(duì)應(yīng)搜索結(jié)果數(shù)據(jù)。完成通過(guò)CSV將解析到的搜索結(jié)果數(shù)據(jù)本地結(jié)構(gòu)化存儲(chǔ)。情境二:爬取百度搜索結(jié)果數(shù)據(jù)PART02知識(shí)準(zhǔn)備情境二:爬取百度搜索結(jié)果數(shù)據(jù)知識(shí)準(zhǔn)備引導(dǎo)問(wèn)題了解什么是模擬瀏覽器操作,說(shuō)明模擬瀏覽器操作相關(guān)原理。了解瀏覽器操作都有哪些,并理解各操作都有什么意義。模擬瀏覽器操作,我們需要準(zhǔn)備什么?如何獲取源數(shù)據(jù)?如何解析網(wǎng)頁(yè)源數(shù)據(jù)?如何本地化存儲(chǔ)數(shù)據(jù)?情境二:爬取百度搜索結(jié)果數(shù)據(jù)知識(shí)準(zhǔn)備知識(shí)點(diǎn)介紹Mechanize情境二:爬取百度搜索結(jié)果數(shù)據(jù)知識(shí)準(zhǔn)備Mechanize情境二:爬取百度搜索結(jié)果數(shù)據(jù)Mechanize框架介紹StatefulprogrammaticwebbrowsinginPython.BrowsepagesprogrammaticallywitheasyHTMLformfillingandclickingoflinks.TheMechanizelibraryisusedforautomatinginteractionwithwebsites.Mechanizeautomaticallystoresandsendscookies,followsredirects,andcanfollowlinksandsubmitforms.Formfieldscanbepopulatedandsubmitted.Mechanizealsokeepstrackofthesitesthatyouhavevisitedasahistory.Python中有狀態(tài)的可編程Web瀏覽。使用簡(jiǎn)單的HTML表單填充和單擊鏈接以編程方式瀏覽頁(yè)面。Mechanize是對(duì)Urllib2的部分功能的替換,能夠更好的模擬瀏覽器行為,在Web訪問(wèn)控制方面做得更全面。它對(duì)protocol,cookie,redirection都做了比較好的支持,再結(jié)合BeautifulSoup和re模塊,可以非常有效的解析web頁(yè)面。知識(shí)準(zhǔn)備Mechanize環(huán)境安裝情境二:爬取百度搜索結(jié)果數(shù)據(jù)pipinstallmechanizepiplist在已安裝列表中顯示了mechanize0.4.5,表明版本為0.4.5的mechanize庫(kù)安裝成功。知識(shí)準(zhǔn)備Mechanize使用方法情境二:爬取百度搜索結(jié)果數(shù)據(jù)導(dǎo)入模塊:importmechanize瀏覽器對(duì)象(Browser)classmechanize.Browser(history=None,

request_class=None,

content_parser=None,

factory_class=<classmechanize._html.Factory>,

allow_xhtml=False)history:對(duì)象實(shí)現(xiàn)mechanize.History接口。注意,這個(gè)接口仍然是實(shí)驗(yàn)性的,將來(lái)可能會(huì)改變。此對(duì)象歸瀏覽器實(shí)例所有,不能在瀏覽器之間共享。request_class:請(qǐng)求類使用。默認(rèn)為mechanize.Requestcontent_parser:負(fù)責(zé)解析接收到的HTML/XHTML內(nèi)容的函數(shù)??茨禽v車mechanize._html.content_parser()函數(shù)獲取有關(guān)此函數(shù)必須支持的接口的詳細(xì)信息。factory_class:要使用的HTML工廠類。默認(rèn)為mechanize.Factory知識(shí)準(zhǔn)備情境二:爬取百度搜索結(jié)果數(shù)據(jù)請(qǐng)求對(duì)象(Request)classmechanize.Request(url,data=None,headers={},origin_req_host=None,unverifiable=False,visit=None,timeout=<objectobject>,method=None)url:請(qǐng)求的URL地址。data:與此請(qǐng)求一起發(fā)送的數(shù)據(jù)??梢允菍⒈痪幋a并作為application/x-www-form-urlencoded數(shù)據(jù)發(fā)送的字典,也可以是將按原樣發(fā)送的bytestring。如果使用bytestring,還應(yīng)該適當(dāng)?shù)卦O(shè)置content-type頭。headers:要與此請(qǐng)求一起發(fā)送的郵件頭。method:用于HTTP請(qǐng)求的方法。如果未指定,mechanize將根據(jù)需要選擇“自動(dòng)獲取”或“自動(dòng)發(fā)布”。timeout:超時(shí)(秒)知識(shí)準(zhǔn)備情境二:爬取百度搜索結(jié)果數(shù)據(jù)響應(yīng)對(duì)象(HTTPResponse)mechanize中的響應(yīng)對(duì)象是seek()能夠的file-類似于支持一些附加方法的對(duì)象,這取決于用于連接的協(xié)議。classmechanize._mechanize.HTTPResponse響應(yīng)對(duì)象HTTPResponse是網(wǎng)絡(luò)請(qǐng)求的響應(yīng)數(shù)據(jù)封裝對(duì)象,可通過(guò)此對(duì)象對(duì)響應(yīng)內(nèi)容進(jìn)行提取,比如獲取網(wǎng)頁(yè)請(qǐng)求狀態(tài)、網(wǎng)頁(yè)源代碼等等。HTTPResponse對(duì)象所具有的API函數(shù)和屬性詳見教案。知識(shí)準(zhǔn)備情境二:爬取百度搜索結(jié)果數(shù)據(jù)鏈接(Link)與歷史記錄(History)HTML文檔中的鏈接:classmechanize.Link(base_url,url,text,tag,attrs)瀏覽器訪問(wèn)歷史記錄:classmechanize.HistoryHTML表單APIHTMLForm:classmechanize.HTMLForm(action,method='GET',enctype='application/x-www-form-urlencoded',name=None,attrs=None,request_class=<class'mechanize._request.Request'>,forms=None,labels=None,id_to_labels=None,encoding=None)Control:classmechanize.Control(type,name,attrs,index=None)PART03案例講解情境二:爬取百度搜索結(jié)果數(shù)據(jù)案例講解爬取百度搜索結(jié)果數(shù)據(jù)情境二:爬取百度搜索結(jié)果數(shù)據(jù)案例講解爬取百度搜索結(jié)果數(shù)據(jù)情境二:爬取百度搜索結(jié)果數(shù)據(jù)步驟:確定數(shù)據(jù)源確定目標(biāo)數(shù)據(jù)安裝環(huán)境構(gòu)建項(xiàng)目編寫網(wǎng)頁(yè)爬蟲程序編寫網(wǎng)頁(yè)解析程序編寫數(shù)據(jù)存儲(chǔ)程序運(yùn)行程序效果截圖案例講解爬取天氣預(yù)報(bào)數(shù)據(jù)情境二:爬取百度搜索結(jié)果數(shù)據(jù)具體實(shí)操跟隨教材內(nèi)的步驟實(shí)施。情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)01030204情境概述知識(shí)準(zhǔn)備案例講解總結(jié)PART01情境概述情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)情境概述學(xué)習(xí)情境描述教學(xué)情境描述:通過(guò)學(xué)習(xí)教師講授相關(guān)Scrapy、XPath、MySQL技術(shù)的應(yīng)用,學(xué)習(xí)如何在實(shí)際靜態(tài)網(wǎng)頁(yè)數(shù)據(jù)采集中應(yīng)用Scrapy直接/級(jí)聯(lián)獲取單條/批量網(wǎng)頁(yè)源數(shù)據(jù);使用XPath規(guī)則匹配網(wǎng)頁(yè)節(jié)點(diǎn)提取目標(biāo)數(shù)據(jù);使用PyMySQL存儲(chǔ)過(guò)程結(jié)構(gòu)化數(shù)據(jù)于本地MySQL數(shù)據(jù)庫(kù)中。這是比Requests網(wǎng)絡(luò)爬蟲更為復(fù)雜且完善的數(shù)據(jù)采集框架應(yīng)用與場(chǎng)景實(shí)施。關(guān)鍵知識(shí)點(diǎn):Python庫(kù)環(huán)境管理、Scrapy框架理解、Scrapy框架原理、Twisted異步網(wǎng)絡(luò)請(qǐng)求、XPath結(jié)構(gòu)化文檔解析、MySQL數(shù)據(jù)庫(kù)操作、PyMySQL結(jié)構(gòu)化存儲(chǔ)等。關(guān)鍵技能點(diǎn):Python庫(kù)環(huán)境安裝、Scrapy網(wǎng)絡(luò)請(qǐng)求、Twisted異步網(wǎng)絡(luò)、XPath文檔解析、MySQL結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)。情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)情境概述本節(jié)課的學(xué)習(xí)目標(biāo)正確理解Scrapy框架體系。正確理解Twisted異步網(wǎng)絡(luò)請(qǐng)求原理。正確理解Scrapy網(wǎng)絡(luò)爬蟲框架及原理。掌握Scrapy項(xiàng)目系統(tǒng)配置及爬蟲策略配置。正確掌握Python模塊庫(kù)(Scrapy、Twisted、lxml、PyMySQL等)安裝管理應(yīng)用。能根據(jù)實(shí)際網(wǎng)頁(yè)源,分析網(wǎng)絡(luò)爬蟲請(qǐng)求限制。能正確使用Scrapy進(jìn)行多層級(jí)數(shù)據(jù)采集工作。能正確使用XPath規(guī)范格式化文檔并獲取目標(biāo)數(shù)據(jù)。能正確使用PyMySQL完成MySQL結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)。情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)情境概述本節(jié)課的任務(wù)書完成通過(guò)PIP命令安裝及管理Scrapy、Twisted、lxml、PyMySQL庫(kù)。完成通過(guò)Scrappy獲取列表數(shù)據(jù)、分頁(yè)數(shù)據(jù)及多層級(jí)的汽車銷售數(shù)據(jù)網(wǎng)頁(yè)源代碼。完成通過(guò)XPath格式化網(wǎng)頁(yè)源文檔,并獲取對(duì)應(yīng)類型的汽車銷售數(shù)據(jù)。完成通過(guò)Pymysql將解析到的各車型銷售數(shù)據(jù)結(jié)構(gòu)化存儲(chǔ)于本地MySQL中。情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)PART02知識(shí)準(zhǔn)備情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)知識(shí)準(zhǔn)備引導(dǎo)問(wèn)題了解什么是異步網(wǎng)絡(luò)爬蟲,說(shuō)明異步網(wǎng)絡(luò)爬蟲相關(guān)原理。了解Scrapy是什么框架技術(shù),并理解其優(yōu)勢(shì)。Scrapy框架體系結(jié)構(gòu)及原理是什么?Scrapy如何獲取網(wǎng)頁(yè)源代碼?XPath如何解析網(wǎng)頁(yè)源數(shù)據(jù)?如何本地MySQL結(jié)構(gòu)化存儲(chǔ)數(shù)據(jù)?情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)知識(shí)準(zhǔn)備知識(shí)點(diǎn)介紹ScrapyXPathPyMySQL情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)知識(shí)準(zhǔn)備Scrapy情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)Scrapy框架介紹Scrapy是一種快速的高級(jí)webcrawling和webscraping框架,用于對(duì)網(wǎng)站進(jìn)行爬網(wǎng)并從其頁(yè)面提取結(jié)構(gòu)化數(shù)據(jù)。它可以用于廣泛的用途,從數(shù)據(jù)挖掘到監(jiān)控和自動(dòng)化測(cè)試。Scrapy是一個(gè)應(yīng)用程序框架,用于對(duì)網(wǎng)站進(jìn)行爬行和提取結(jié)構(gòu)化數(shù)據(jù),這些結(jié)構(gòu)化數(shù)據(jù)可用于各種有用的應(yīng)用程序,如數(shù)據(jù)挖掘、信息處理或歷史存檔。盡管Scrapy最初是為webscraping它還可以用于使用API提取數(shù)據(jù)(例如AmazonAssociatesWebServices)或者作為一個(gè)通用的網(wǎng)絡(luò)爬蟲。知識(shí)準(zhǔn)備Scrapy架構(gòu)情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)知識(shí)準(zhǔn)備Scrapy架構(gòu)情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)引擎(ScrapyEngine)調(diào)度器(Scheduler)下載器(Downloader)爬蟲(Spiders)項(xiàng)目管道(ItemPipeline)下載器中間件(DownloaderMiddlewares)爬蟲中間件(SpiderMiddlewares)調(diào)度中間件(SchedulerMiddewares)知識(shí)準(zhǔn)備Scrapy運(yùn)行流程情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)知識(shí)準(zhǔn)備Scrapy環(huán)境安裝情境二:爬取百度搜索結(jié)果數(shù)據(jù)pipinstallScrapypiplist在已安裝列表中顯示了Scrapy2.3.0(具體版本以當(dāng)前實(shí)際為準(zhǔn)),表明版本為2.3.0的Scrapy庫(kù)安裝成功。知識(shí)準(zhǔn)備Scrapy內(nèi)置命令情境二:爬取百度搜索結(jié)果數(shù)據(jù)$scrapystartproject<project_name>[project_dir]$scrapygenspider[-ttemplate]<name><domain>$scrapysettings[options]$scrapyrunspider<spider_file.py>$scrapyshell[url]$crapyfetch<url>$scrapyview<url>$scrapyversion[-v]$scrapycrawl<spider>$scrapycheck[-l]<spider>其余命令參見教案知識(shí)準(zhǔn)備Scrapy快速應(yīng)用案例情境二:爬取百度搜索結(jié)果數(shù)據(jù)創(chuàng)建新的Scrapy項(xiàng)目構(gòu)建Spider爬蟲程序,對(duì)網(wǎng)站進(jìn)行爬網(wǎng)并提取數(shù)據(jù)運(yùn)行爬蟲程序知識(shí)準(zhǔn)備XPath情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)XPath框架介紹XPath是一門在XML文檔中查找信息的語(yǔ)言。XPath可用來(lái)在XML文檔中對(duì)元素和屬性進(jìn)行遍歷。XPath是W3CXSLT標(biāo)準(zhǔn)的主要元素,并且XQuery和XPointer都構(gòu)建于XPath表達(dá)之上。因此,對(duì)XPath的理解是很多高級(jí)XML應(yīng)用的基礎(chǔ)。XPath基于XML的樹狀結(jié)構(gòu),提供在數(shù)據(jù)結(jié)構(gòu)樹中找尋節(jié)點(diǎn)的能力。知識(shí)準(zhǔn)備XPath環(huán)境安裝情境二:爬取百度搜索結(jié)果數(shù)據(jù)XPath是一種語(yǔ)法,它從屬于框架lxml,用于解析HTML網(wǎng)頁(yè)結(jié)構(gòu)和內(nèi)容解析。關(guān)于lxml框架的安裝和驗(yàn)證在安裝Scrapy框架的過(guò)程中已操作過(guò),所以在本小節(jié)中不再贅述。知識(shí)準(zhǔn)備XPath使用方法情境二:爬取百度搜索結(jié)果數(shù)據(jù)獲取lxml.html對(duì)象Html與XPath對(duì)象互相轉(zhuǎn)換XPath()選取節(jié)點(diǎn)謂語(yǔ)(Predicates)通配符獲取內(nèi)容和屬性值知識(shí)準(zhǔn)備PyMySQL情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)PyMySQL模塊安裝pipinstallPyMySQLpiplist在已安裝列表中顯示了PyMySQL0.9.3,表明版本為0.9.3的PyMySQL庫(kù)安裝成功。知識(shí)準(zhǔn)備PyMySQL使用方法情境二:爬取百度搜索結(jié)果數(shù)據(jù)pymysql.connections.ConnectionAPI詳情參見教案pymysql.cursors.CursorAPI詳情參見教案PART03案例講解情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)案例講解爬取汽車銷售分頁(yè)數(shù)據(jù)情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)實(shí)例:“購(gòu)車網(wǎng)”SUV銷量排行榜頁(yè)面。案例講解爬取汽車銷售分頁(yè)數(shù)據(jù)情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)步驟:確定數(shù)據(jù)源確定目標(biāo)數(shù)據(jù)安裝環(huán)境構(gòu)建項(xiàng)目編寫數(shù)據(jù)采集程序編寫數(shù)據(jù)存儲(chǔ)程序運(yùn)行程序效果截圖案例講解爬取汽車銷售分頁(yè)數(shù)據(jù)情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)具體實(shí)操跟隨教材內(nèi)的步驟實(shí)施。PART04總結(jié)情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)總結(jié)總結(jié)情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)本情景,主要介紹了Scrapy、XPath、PyMySQL的知識(shí),通過(guò)對(duì)案例的學(xué)習(xí),讓同學(xué)們掌握Scrapy、XPath、PyMySQL的運(yùn)用。謝謝課程名稱:Python網(wǎng)絡(luò)爬蟲Python網(wǎng)絡(luò)爬蟲第二單元爬取動(dòng)態(tài)網(wǎng)頁(yè)教學(xué)概述概述動(dòng)態(tài)網(wǎng)頁(yè),是指跟靜態(tài)網(wǎng)頁(yè)相對(duì)的一種網(wǎng)頁(yè)編程技術(shù)。靜態(tài)網(wǎng)頁(yè),隨著html代碼的生成,頁(yè)面的內(nèi)容和顯示效果就基本上不會(huì)發(fā)生變化了(除非修改頁(yè)面代碼)。而動(dòng)態(tài)網(wǎng)頁(yè)則不然,頁(yè)面代碼雖然沒(méi)有變,但是顯示的內(nèi)容卻是可以隨著時(shí)間、環(huán)境或者數(shù)據(jù)庫(kù)操作的結(jié)果而發(fā)生改變的。

動(dòng)態(tài)網(wǎng)頁(yè)是基本的html語(yǔ)法規(guī)范與Java、VB、VC等高級(jí)程序設(shè)計(jì)語(yǔ)言、數(shù)據(jù)庫(kù)編程等多種技術(shù)的融合,以期實(shí)現(xiàn)對(duì)網(wǎng)站內(nèi)容和風(fēng)格的高效、動(dòng)態(tài)和交互式的管理。因此,從這個(gè)意義上來(lái)講,凡是結(jié)合了HTML以外的高級(jí)程序設(shè)計(jì)語(yǔ)言和數(shù)據(jù)庫(kù)技術(shù)進(jìn)行的網(wǎng)頁(yè)編程技術(shù)生成的網(wǎng)頁(yè)都是動(dòng)態(tài)網(wǎng)頁(yè)。第二單元爬取動(dòng)態(tài)網(wǎng)頁(yè)02爬取百度圖片數(shù)據(jù)爬取漫畫數(shù)據(jù)01情境一:爬取百度圖片數(shù)據(jù)01030204情境概述知識(shí)準(zhǔn)備案例講解總結(jié)PART01情境概述情境一:爬取百度圖片數(shù)據(jù)情境概述學(xué)習(xí)情境描述教學(xué)情境描述:通過(guò)對(duì)Scrapy、JSON、MySQL知識(shí)點(diǎn)的學(xué)習(xí),對(duì)技術(shù)綜合應(yīng)用的操作,學(xué)習(xí)并掌握如何去區(qū)分靜態(tài)網(wǎng)頁(yè)和動(dòng)態(tài)網(wǎng)頁(yè)交互、去分析動(dòng)態(tài)網(wǎng)頁(yè)實(shí)際數(shù)據(jù)來(lái)源、去獲取動(dòng)態(tài)網(wǎng)頁(yè)交互數(shù)據(jù),最終達(dá)到:使用Scrapy獲取動(dòng)態(tài)數(shù)據(jù)源;使用JSON解析動(dòng)態(tài)數(shù)據(jù);使用PyMySQL存儲(chǔ)動(dòng)態(tài)結(jié)構(gòu)化數(shù)據(jù)MySQL數(shù)據(jù)庫(kù)。關(guān)鍵知識(shí)點(diǎn):Python庫(kù)環(huán)境管理;Scrapy網(wǎng)絡(luò)交互;JSON數(shù)據(jù)格式;JSON數(shù)據(jù)解析;PyMySQL結(jié)構(gòu)化存儲(chǔ)。關(guān)鍵技能點(diǎn):Scrapy網(wǎng)頁(yè)及接口請(qǐng)求;JSON數(shù)據(jù)解析;MySQL結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)。情境一:爬取百度圖片數(shù)據(jù)情境概述本節(jié)課的學(xué)習(xí)目標(biāo)掌握Python模塊庫(kù)(Scrapy、JSON、PyMySQL等)安裝管理應(yīng)用。能區(qū)分靜態(tài)網(wǎng)頁(yè)和動(dòng)態(tài)網(wǎng)頁(yè)。能根據(jù)實(shí)際情況,定位動(dòng)態(tài)數(shù)據(jù)來(lái)源。理解Scrapy框架體系。理解Scrapy網(wǎng)絡(luò)爬蟲框架及原理。掌握Scrapy項(xiàng)目系統(tǒng)配置及爬蟲策略配置。能使用Scrapy進(jìn)行網(wǎng)頁(yè)和接口數(shù)據(jù)采集工作。能使用JSON解析動(dòng)態(tài)數(shù)據(jù)源。能使用PyMySQL完成MySQL結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)。情境一:爬取百度圖片數(shù)據(jù)情境概述本節(jié)課的任務(wù)書完成通過(guò)PIP命令安裝及管理Scrapy、JSON、PyMySQL庫(kù)。完成通過(guò)Scrappy獲取列表數(shù)據(jù)、分頁(yè)數(shù)據(jù)及多層級(jí)的汽車銷售數(shù)據(jù)網(wǎng)頁(yè)源代碼。完成通過(guò)XPath格式化網(wǎng)頁(yè)源文檔,并獲取對(duì)應(yīng)類型的汽車銷售數(shù)據(jù)。完成通過(guò)Pymysql將解析到的各車型銷售數(shù)據(jù)結(jié)構(gòu)化存儲(chǔ)于本地MySQL中。情境一:爬取百度圖片數(shù)據(jù)PART02知識(shí)準(zhǔn)備情境一:爬取百度圖片數(shù)據(jù)知識(shí)準(zhǔn)備引導(dǎo)問(wèn)題了解什么是動(dòng)態(tài)網(wǎng)頁(yè),和靜態(tài)網(wǎng)頁(yè)有什么不同。如何定位動(dòng)態(tài)網(wǎng)頁(yè)數(shù)據(jù)源?如何獲取動(dòng)態(tài)網(wǎng)頁(yè)數(shù)據(jù)源?動(dòng)態(tài)網(wǎng)頁(yè)數(shù)據(jù)是以什么樣的格式或結(jié)構(gòu)展現(xiàn)?如何解析動(dòng)態(tài)網(wǎng)頁(yè)數(shù)據(jù)?如何將動(dòng)態(tài)數(shù)據(jù)在MySQL結(jié)構(gòu)化存儲(chǔ)?情境一:爬取百度圖片數(shù)據(jù)知識(shí)準(zhǔn)備知識(shí)點(diǎn)介紹ScrapyJSONPyMySQL情境一:爬取百度圖片數(shù)據(jù)知識(shí)準(zhǔn)備JSON情境一:爬取百度圖片數(shù)據(jù)JSON介紹JSON(JavaScript

ObjectNotation,JS對(duì)象簡(jiǎn)譜)是一種輕量級(jí)的數(shù)據(jù)交換格式。它基于ECMAScript(歐洲計(jì)算機(jī)協(xié)會(huì)制定的js規(guī)范)的一個(gè)子集,采用完全獨(dú)立于編程語(yǔ)言的文本格式來(lái)存儲(chǔ)和表示數(shù)據(jù)。簡(jiǎn)潔和清晰的層次結(jié)構(gòu)使得JSON成為理想的數(shù)據(jù)交換語(yǔ)言。易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成,并有效地提升網(wǎng)絡(luò)傳輸效率。JSON是DouglasCrockford在2001年開始推廣使用的數(shù)據(jù)格式,在2005年-2006年正式成為主流的數(shù)據(jù)格式。JSON是存儲(chǔ)和交換文本信息的語(yǔ)法,類似XML。JSON比XML更小、更快,更易解析。知識(shí)準(zhǔn)備

JSON語(yǔ)法規(guī)則情境一:爬取百度圖片數(shù)據(jù)JSON使用

JavaScript

語(yǔ)法來(lái)描述數(shù)據(jù)對(duì)象,但是JSON仍然獨(dú)立于語(yǔ)言和平臺(tái)。JSON語(yǔ)法是JavaScript語(yǔ)法的子集,包括以下內(nèi)容:數(shù)據(jù)在名稱/值對(duì)中數(shù)據(jù)由逗號(hào)分隔花括號(hào)保存對(duì)象方括號(hào)保存數(shù)組JSON支持以下數(shù)據(jù)結(jié)構(gòu):名/值對(duì)集合:這一數(shù)據(jù)結(jié)構(gòu)由不同的鍵值對(duì)組成。無(wú)序的對(duì)象結(jié)構(gòu):多個(gè)名稱/值構(gòu)成的封裝體,類似字典表。有序的值列表:包括數(shù)組,列表,向量或序列等等。知識(shí)準(zhǔn)備

情境一:爬取百度圖片數(shù)據(jù)JSON名稱/值對(duì)JSON數(shù)據(jù)的書寫格式是:名稱/值對(duì)。名稱/值對(duì)包括字段名稱(在雙引號(hào)中),后面寫一個(gè)冒號(hào),然后是值。語(yǔ)法如下所示:其中value所對(duì)應(yīng)的值可以是:數(shù)字、字符串、邏輯值、數(shù)組、對(duì)象、null。具體描述如下:"name":value知識(shí)準(zhǔn)備

情境一:爬取百度圖片數(shù)據(jù)JSON對(duì)象JSON對(duì)象使用在大括號(hào)({})中書寫,對(duì)象可以包含多個(gè)

key/value(鍵/值)對(duì)。其中:key必須是字符串,value可以是合法的JSON數(shù)據(jù)類型(字符串,數(shù)字,對(duì)象,數(shù)組,布爾值或null)。key和value中使用冒號(hào)(:)分割。每個(gè)key/value對(duì)使用逗號(hào)(,)分割。

數(shù)據(jù)結(jié)構(gòu)如下:{"鍵名1":值1,"鍵名2":值2,……"鍵名n":值n}知識(shí)準(zhǔn)備

情境一:爬取百度圖片數(shù)據(jù)JSON數(shù)組JSON數(shù)組結(jié)構(gòu)是用中括號(hào)“[]”括起來(lái),中括號(hào)內(nèi)部由0個(gè)或多個(gè)以英文逗號(hào)“,”分隔的值列表組成。數(shù)據(jù)結(jié)構(gòu)如下:[{"鍵名1":值1,"鍵名2":值2},{"鍵名3":值3,"鍵名4":值4},……]知識(shí)準(zhǔn)備

Python中使用JSON情境一:爬取百度圖片數(shù)據(jù)

在Python中要操作JSON數(shù)據(jù)對(duì)象,需要使用json模塊。

JSON模塊為Python內(nèi)置模塊,在環(huán)境安裝時(shí)已自動(dòng)安裝上,所以可以直接使用框架庫(kù),無(wú)需額外安裝。

在json模塊中,主要是對(duì)Python數(shù)據(jù)的編碼和解碼,分別對(duì)應(yīng)函數(shù):dumps()、loads()。知識(shí)準(zhǔn)備

情境一:爬取百度圖片數(shù)據(jù)dumps()json.dumps():對(duì)數(shù)據(jù)進(jìn)行編碼,將Python對(duì)象編碼成JSON字符串。語(yǔ)法如下:Python對(duì)象轉(zhuǎn)換為JSON數(shù)據(jù)會(huì)有類型轉(zhuǎn)化,類型對(duì)照表如下:json.dumps(obj,skipkeys=False,ensure_ascii=True,check_circular=True,allow_nan=True,cls=None,indent=None,separators=None,encoding="utf-8",default=None,sort_keys=False,**kw)知識(shí)準(zhǔn)備

情境一:爬取百度圖片數(shù)據(jù)loads()json.loads():對(duì)數(shù)據(jù)進(jìn)行解碼,將JSON字符串解碼成Python對(duì)象。語(yǔ)法如下:JSON數(shù)據(jù)轉(zhuǎn)換為Python對(duì)象會(huì)有類型轉(zhuǎn)化,類型對(duì)照表如下:json.loads(s[,encoding[,cls[,object_hook[,parse_float[,parse_int[,parse_constant[,object_pairs_hook[,**kw]]]]]]]])PART03案例講解情境一:爬取百度圖片數(shù)據(jù)案例講解爬取百度圖片數(shù)據(jù)情境一:爬取百度圖片數(shù)據(jù)步驟:確定目標(biāo)網(wǎng)頁(yè)分析并確定目標(biāo)數(shù)據(jù)安裝環(huán)境構(gòu)建項(xiàng)目編寫數(shù)據(jù)采集程序編寫數(shù)據(jù)存儲(chǔ)程序運(yùn)行程序效果截圖案例講解爬取百度圖片數(shù)據(jù)情境一:爬取百度圖片數(shù)據(jù)具體實(shí)操跟隨教材內(nèi)的步驟實(shí)施。PART04總結(jié)情境一:爬取百度圖片數(shù)據(jù)總結(jié)總結(jié)情境一:爬取百度圖片數(shù)據(jù)

本情景,主要介紹了Scrapy、JSON、PyMySQL的相關(guān)知識(shí),通過(guò)對(duì)案例的學(xué)習(xí),讓同學(xué)們掌握

Scrapy、JSON、PyMySQL

的運(yùn)用。情境二:爬取漫畫數(shù)據(jù)01030204情境概述知識(shí)準(zhǔn)備案例講解總結(jié)PART01情境概述情境二:爬取漫畫數(shù)據(jù)情境概述學(xué)習(xí)情境描述教學(xué)情境描述:通過(guò)對(duì)Selenium、PhantomJS、threading、Pillow知識(shí)點(diǎn)的學(xué)習(xí),對(duì)技術(shù)綜合應(yīng)用的操作,學(xué)習(xí)并掌握如何去區(qū)分靜態(tài)網(wǎng)頁(yè)和動(dòng)態(tài)網(wǎng)頁(yè)交互、去分析動(dòng)態(tài)網(wǎng)頁(yè)實(shí)際數(shù)據(jù)來(lái)源、去模擬瀏覽器訪問(wèn)網(wǎng)頁(yè)、模擬用戶操作瀏覽器、去獲取動(dòng)態(tài)網(wǎng)頁(yè)交互數(shù)據(jù)。達(dá)到本次最終目的:使用Selenium模擬瀏覽器與用戶行為操作、使用PhantomJS提供無(wú)界面瀏覽器支持與滾動(dòng)截屏支持、使用threading構(gòu)建多線程數(shù)據(jù)采集、使用Pillow裁剪處理并保存目標(biāo)圖片。關(guān)鍵知識(shí)點(diǎn):Python庫(kù)環(huán)境管理;PhantomJS軟件安裝與配置;Selenium框架理解;Selenium原理;Selenium自動(dòng)化操作;threading多線程構(gòu)建與管理;Pillow圖片裁剪與存儲(chǔ)。關(guān)鍵技能點(diǎn):PhantomJS軟件安裝與配置;Selenium自動(dòng)化操作;threading多線程構(gòu)建與管理;Pillow圖片裁剪與存儲(chǔ)。情境二:爬取漫畫數(shù)據(jù)情境概述本節(jié)課的學(xué)習(xí)目標(biāo)掌握Python模塊庫(kù)(Selenium、threading、Pillow等)安裝管理應(yīng)用。掌握PhantomJS軟件安裝與配置。能區(qū)分靜態(tài)網(wǎng)頁(yè)和動(dòng)態(tài)網(wǎng)頁(yè)。能根據(jù)實(shí)際情況,定位動(dòng)態(tài)數(shù)據(jù)來(lái)源。理解Selenium自動(dòng)化框架及原理。掌握Selenium運(yùn)行環(huán)境和項(xiàng)目配置。能使用Selenium模擬瀏覽器操作和用戶行為操作。能使用threading構(gòu)建和管理多線程爬蟲任務(wù)。能使用Pillow對(duì)圖片進(jìn)行裁剪和存儲(chǔ)。情境二:爬取漫畫數(shù)據(jù)情境概述本節(jié)課的任務(wù)書完成通過(guò)PIP命令安裝及管理Selenium、threading、Pillow庫(kù)。完成通過(guò)Selenium模擬瀏覽器請(qǐng)求,模擬用戶行為操作,獲取動(dòng)漫作品的章節(jié)列表及章節(jié)漫畫圖片原型。完成通過(guò)threading構(gòu)建和管理多線程爬蟲任務(wù)。完成通過(guò)Pillow的相關(guān)模塊完成對(duì)圖片進(jìn)行裁剪和存儲(chǔ)操作。情境二:爬取漫畫數(shù)據(jù)PART02知識(shí)準(zhǔn)備情境二:爬取漫畫數(shù)據(jù)知識(shí)準(zhǔn)備引導(dǎo)問(wèn)題網(wǎng)頁(yè)中列表數(shù)據(jù)和圖片加載方式有幾種?分別是如何加載的,動(dòng)態(tài)加載和靜態(tài)加載的區(qū)別。如何定位動(dòng)態(tài)網(wǎng)頁(yè)列表數(shù)據(jù)源和圖片數(shù)據(jù)源?除了Requests或Scrapy直接請(qǐng)求地址的方式,還可以通過(guò)哪些方式獲取動(dòng)態(tài)網(wǎng)頁(yè)數(shù)據(jù)和圖片數(shù)據(jù)?如何通過(guò)Selenium獲取動(dòng)態(tài)加載的網(wǎng)頁(yè)圖片?如何通過(guò)Selenium技術(shù)實(shí)現(xiàn)網(wǎng)頁(yè)截屏?如何將圖片進(jìn)行裁剪并本地化存儲(chǔ)?情境二:爬取漫畫數(shù)據(jù)知識(shí)準(zhǔn)備知識(shí)點(diǎn)介紹PhantomJSSeleniumthreadingPillow情境二:爬取漫畫數(shù)據(jù)知識(shí)準(zhǔn)備PhantomJS情境二:爬取漫畫數(shù)據(jù)PhantomJS介紹PhantomJS是一個(gè)無(wú)界面的、可腳本編程的WebKit瀏覽器引擎。它可以在Windows、macOS、Linux和FreeBSD系統(tǒng)上運(yùn)行。使用QtWebKit作為后端,它為各種Web標(biāo)準(zhǔn)提供快速和本地支持:DOM處理、CSS選擇器、JSON、畫布和SVG。PhantomJS有如下特點(diǎn):PhantomJS是一個(gè)基于webkit內(nèi)核、無(wú)界面的瀏覽器,即它就是一個(gè)瀏覽器,只是其內(nèi)的點(diǎn)擊、翻頁(yè)等人為相關(guān)操作需要程序設(shè)計(jì)實(shí)現(xiàn);PhantomJS提供JavascriptAPI接口,可以通過(guò)編寫JS程序直接與webkit內(nèi)核交互;PhantomJS的應(yīng)用:無(wú)需瀏覽器的Web測(cè)試、網(wǎng)頁(yè)截屏、頁(yè)面訪問(wèn)自動(dòng)化、網(wǎng)絡(luò)監(jiān)測(cè)。知識(shí)準(zhǔn)備

PhantomJS安裝與配置情境二:爬取漫畫數(shù)據(jù)下載軟件PhantomJS是一款無(wú)頭瀏覽器,是一款軟件。官網(wǎng)下載地址:

下載phantomjs-2.1.1-windows.zip后解壓到本地文件夾即可。環(huán)境配置定位到phantomjs.exe所在地址,此處演示地址為:C:\Software\phantomjs-2.1.1-windows\bin,將其添加在系統(tǒng)環(huán)境變量中。/download.html知識(shí)準(zhǔn)備

情境二:爬取漫畫數(shù)據(jù)驗(yàn)證安裝使用快捷鍵打開CMD命令窗口,輸入查看PhantomJS的版本。如圖:知識(shí)準(zhǔn)備

PhantomJS運(yùn)行腳本情境二:爬取漫畫數(shù)據(jù)PhantomJS是一款無(wú)頭瀏覽器,也可以使用PhantomJS命令行工具運(yùn)行JS腳本。PhantomJS運(yùn)行腳本案例如圖:知識(shí)準(zhǔn)備Selenium情境二:爬取漫畫數(shù)據(jù)Selenium框架介紹Selenium是支持web瀏覽器自動(dòng)化的一系列工具和庫(kù)的綜合項(xiàng)目。它提供了擴(kuò)展來(lái)模擬用戶與瀏覽器的交互,用于擴(kuò)展瀏覽器分配的分發(fā)服務(wù)器,以及用于實(shí)現(xiàn)

W3CWebDriver規(guī)范的基礎(chǔ)結(jié)構(gòu),該規(guī)范允許您為所有主要Web瀏覽器編寫可互換的代碼。Selenium的核心是

WebDriver,這是一個(gè)編寫指令集的接口,可以在許多瀏覽器中互換運(yùn)行。知識(shí)準(zhǔn)備

Selenium搭建情境二:爬取漫畫數(shù)據(jù)安裝Selenium

可以使用PIP安裝Python的Selenium庫(kù)。語(yǔ)法如下:驗(yàn)證安裝可以使用PIP驗(yàn)證Selenium庫(kù)的安裝成果。語(yǔ)法如下:pipinstallSeleniumpiplist知識(shí)準(zhǔn)備

情境二:爬取漫畫數(shù)據(jù)下載WebDriver二進(jìn)制文件通過(guò)WebDriver,Selenium支持市面上所有主流的瀏覽器,如Chrom(ium)、Firefox、InternetExplorer、Opera和Safari。盡管并非所有瀏覽器都對(duì)遠(yuǎn)程控制提供官方支持,但WebDriver盡可能使用瀏覽器的內(nèi)置自動(dòng)化支持來(lái)驅(qū)動(dòng)瀏覽器。常見瀏覽器及其對(duì)應(yīng)的WebDriver二進(jìn)制文件下載地址:知識(shí)準(zhǔn)備

情境二:爬取漫畫數(shù)據(jù)配置二進(jìn)制文件環(huán)境通過(guò)將包含WebDriver二進(jìn)制文件的文件夾添加到系統(tǒng)path環(huán)境變量中,Selenium將能夠找到其他二進(jìn)制文件,而無(wú)需您的測(cè)試代碼來(lái)定位驅(qū)動(dòng)程序的確切位置。如圖:驗(yàn)證Path打開命令行窗口,輸入WebDriver名稱,查看驅(qū)動(dòng)程序啟動(dòng)的輸出,如圖:知識(shí)準(zhǔn)備

WebDriver通信介紹情境二:爬取漫畫數(shù)據(jù)WebDriver通過(guò)一個(gè)驅(qū)動(dòng)程序與瀏覽器對(duì)話。通信基本方式是:直接通信,WebDriver通過(guò)驅(qū)動(dòng)程序向?yàn)g覽器傳遞命令,然后通過(guò)相同的路徑接收信息。結(jié)構(gòu)如圖:知識(shí)準(zhǔn)備

Selenium應(yīng)用情境二:爬取漫畫數(shù)據(jù)實(shí)例化WebDriver定位元素操控瀏覽器等待Keyboard知識(shí)準(zhǔn)備threading情境二:爬取漫畫數(shù)據(jù)線程介紹多線程類似于同時(shí)執(zhí)行多個(gè)不同程序。線程不能夠獨(dú)立執(zhí)行,必須依存在應(yīng)用程序中,由應(yīng)用程序提供多個(gè)線程執(zhí)行控制。線程在執(zhí)行過(guò)程中與進(jìn)程還是有區(qū)別的,每個(gè)獨(dú)立的進(jìn)程有一個(gè)程序運(yùn)行的入口、順序執(zhí)行序列和程序的出口。多線程運(yùn)行有如下優(yōu)點(diǎn):使用線程可以把占據(jù)長(zhǎng)時(shí)間的程序中的任務(wù)放到后臺(tái)去處理。用戶界面可以更加吸引人,這樣比如用戶點(diǎn)擊了一個(gè)按鈕去觸發(fā)某些事件的處理,可以彈出一個(gè)進(jìn)度條來(lái)顯示處理的進(jìn)度。程序的運(yùn)行速度可能加快。在一些等待的任務(wù)實(shí)現(xiàn)上如用戶輸入、文件讀寫和網(wǎng)絡(luò)收發(fā)數(shù)據(jù)等,線程就比較有用了。在這種情況下我們可以釋放一些珍貴的資源如內(nèi)存占用等等。知識(shí)準(zhǔn)備

threading模塊情境二:爬取漫畫數(shù)據(jù)Python3通過(guò)兩個(gè)標(biāo)準(zhǔn)庫(kù)_thread和threading提供對(duì)線程的支持。threading模塊除了包含_thread模塊中的所有方法外,還提供的其他方法:threading.currentThread():返回當(dāng)前的線程變量。threading.enumerate():返回一個(gè)包含正在運(yùn)行的線程的list。正在運(yùn)行指線程啟動(dòng)后、結(jié)束前,不包括啟動(dòng)前和終止后的線程。threading.activeCount():返回正在運(yùn)行的線程數(shù)量,與len(threading.enumerate())有相同的結(jié)果。知識(shí)準(zhǔn)備

threading模塊情境二:爬取漫畫數(shù)據(jù)threading模塊同樣提供了Thread類來(lái)處理線程,Thread類提供了以下方法:run():

用以表示線程活動(dòng)的方法。start():啟動(dòng)線程活動(dòng)。join([time]):

等待至線程中止。這阻塞調(diào)用線程直至線程的join()方法被調(diào)用中止-正常退出或者拋出未處理的異常-或者是可選的超時(shí)發(fā)生。isAlive():

返回線程是否活動(dòng)的。getName():

返回線程名。setName():

設(shè)置線程名。知識(shí)準(zhǔn)備Pillow情境二:爬取漫畫數(shù)據(jù)Pillow介紹Pillow是一個(gè)友好的圖形處理庫(kù)。PythonPillow庫(kù)為您的Python翻譯增加了圖像處理功能。此庫(kù)提供廣泛的文件格式支持、高效的內(nèi)部表示和相當(dāng)強(qiáng)大的圖像處理功能。核心圖像庫(kù)專為快速訪問(wèn)以幾個(gè)基本像素格式存儲(chǔ)的數(shù)據(jù)而設(shè)計(jì)。它應(yīng)該為一般圖像處理工具提供堅(jiān)實(shí)的基礎(chǔ)。Pillow包含了圖像處理的多個(gè)模塊,提供了充足的工具庫(kù)支持。比如:Image、ImageChops、ImageCms、ImageColor、ImageDraw、ImageEnhance、ImageFile、ImageFilter、ImageFont、ImageGrab、ImageMath、ImageOps、ImagePath、ImageShow、...知識(shí)準(zhǔn)備

Pillow環(huán)境情境二:爬取漫畫數(shù)據(jù)安裝Pillow

可以使用PIP安裝Python的Pillow庫(kù)。語(yǔ)法如下:驗(yàn)證安裝可以使用PIP驗(yàn)證Pillow庫(kù)的安裝成果。語(yǔ)法如下:pipinstallPillowpiplist知識(shí)準(zhǔn)備

Pillow應(yīng)用情境二:爬取漫畫數(shù)據(jù)使用Image類閱讀和書寫圖像切割、粘貼和合并圖像幾何轉(zhuǎn)換顏色轉(zhuǎn)換圖像增強(qiáng)PART03案例講解情境二:爬取漫畫數(shù)據(jù)案例講解爬取漫畫數(shù)據(jù)情境二:爬取漫畫數(shù)據(jù)步驟:確定目標(biāo)網(wǎng)頁(yè)分析并確定目標(biāo)數(shù)據(jù)安裝環(huán)境構(gòu)建項(xiàng)目編寫網(wǎng)頁(yè)爬蟲程序運(yùn)行程序效果截圖案例講解爬取漫畫數(shù)據(jù)情境二:爬取漫畫數(shù)據(jù)具體實(shí)操跟隨教材內(nèi)的步驟實(shí)施。PART04總結(jié)情境二:爬取漫畫數(shù)據(jù)總結(jié)總結(jié)情境二:爬取漫畫數(shù)據(jù)

本情景,主要介紹了Selenium、PhantomJS、threading、Pillow

的相關(guān)知識(shí),通過(guò)對(duì)案例的學(xué)習(xí),讓同學(xué)們掌握

Selenium、PhantomJS、threading、Pillow

的運(yùn)用。謝謝課程名稱:Python網(wǎng)絡(luò)爬蟲Python網(wǎng)絡(luò)爬蟲第三單元

爬取APP數(shù)據(jù)教學(xué)概述概述

APP(Application),也稱為手機(jī)軟件或應(yīng)用軟件,主要指安裝在智能手機(jī)上的軟件,完善原始系統(tǒng)的不足與個(gè)性化。使手機(jī)完善其功能,為用戶提供更豐富的使用體驗(yàn)的主要手段。手機(jī)軟件的運(yùn)行需要有相應(yīng)的手機(jī)系統(tǒng),目前主要的手機(jī)系統(tǒng)有:蘋果公司的iOS系統(tǒng)、谷歌公司的Android(安卓)系統(tǒng)。

隨著智能手機(jī)的普及,人們?cè)跍贤?、社交、娛?lè)等活動(dòng)中越來(lái)越依賴于手機(jī)app軟件。手機(jī)軟件是通過(guò)分析,設(shè)計(jì),編碼,生成軟件,而手機(jī)軟件是一種特殊的軟件。

APP中主要做到的效果是數(shù)據(jù)展示和用戶交互,而數(shù)據(jù)的來(lái)源,也就是本次學(xué)習(xí)情境的目標(biāo)所在,是通過(guò)HTTP和Socket通信方式與后臺(tái)服務(wù)器定義的接口進(jìn)行交互的。教學(xué)概述教學(xué)導(dǎo)航知識(shí)重點(diǎn)Fiddler及

Android模擬器的安裝使用。知識(shí)難點(diǎn)利用

Fiddler及

Android模擬器

進(jìn)行爬取app項(xiàng)目開發(fā)。推薦教學(xué)方式從

Fiddler及

Android模擬器

功能進(jìn)行介紹,讓學(xué)生有大體了解實(shí)際爬取app項(xiàng)目開發(fā),讓學(xué)生掌握如何使用。建議學(xué)時(shí)8學(xué)時(shí)推薦學(xué)習(xí)方法通過(guò)老師講解掌握

Fiddler及

Android

模擬器基本概念,然后進(jìn)行實(shí)操一步步通過(guò)Fiddler及

Android模擬器構(gòu)建爬蟲項(xiàng)目,加深印象。必須掌握的理論知識(shí)Fiddler的使用;網(wǎng)絡(luò)交互數(shù)據(jù)解析;必須掌握的技能Fiddler的安裝和配置;Fiddler的使用;網(wǎng)絡(luò)交互數(shù)據(jù)解析;模擬器的安裝配置。第三單元

爬取APP數(shù)據(jù)0304Fiddler與模擬器的整合關(guān)聯(lián)Fiddler和模擬器分析并確定目標(biāo)數(shù)據(jù)構(gòu)建項(xiàng)目采集數(shù)據(jù)0102情境一:使用Fiddler+Requests爬取新聞?lì)怉PP接口數(shù)據(jù)01030204情景概述知識(shí)準(zhǔn)備案例講解總結(jié)PART01情境概述情境一:使用Fiddler+Requests爬取新聞?lì)怉PP接口數(shù)據(jù)情境概述學(xué)習(xí)情境描述1.教學(xué)情境描述:通過(guò)對(duì)Fiddler工具的安裝、配置和使用來(lái)定位數(shù)據(jù)訪問(wèn)具體細(xì)節(jié);通過(guò)對(duì)真機(jī)或模擬器APP數(shù)據(jù)訪問(wèn)和用戶交互操作的數(shù)據(jù)和行為解析;通過(guò)Requests或其他爬蟲技術(shù)的應(yīng)用,爬取手機(jī)應(yīng)用APP交互數(shù)據(jù)。2.關(guān)鍵知識(shí)點(diǎn):Fiddler的安裝和配置、Fiddler的使用、網(wǎng)絡(luò)交互數(shù)據(jù)解析、模擬器的安裝配置、APP的應(yīng)用、Requests數(shù)據(jù)請(qǐng)求、JSON數(shù)據(jù)解析、CSV數(shù)據(jù)存儲(chǔ)。3.關(guān)鍵技能點(diǎn):Fiddler的使用、模擬器的安裝配置、Requests數(shù)據(jù)請(qǐng)求、JSON數(shù)據(jù)解析、CSV數(shù)據(jù)存儲(chǔ)。

情境一:使用Fiddler+Requests爬取新聞?lì)怉PP接口數(shù)據(jù)情境概述本節(jié)課的學(xué)習(xí)目標(biāo)理解APP應(yīng)用數(shù)據(jù)交互和用戶行為交互原理。掌握Fiddler工具安裝配置。掌握模擬器的安裝配置。掌握Fiddler和模擬器的整合。掌握Fiddler定位解析網(wǎng)絡(luò)數(shù)據(jù)交互功能。掌握Requests網(wǎng)絡(luò)爬蟲技術(shù)。掌握J(rèn)SON數(shù)據(jù)格式并解析。掌握CSV數(shù)據(jù)格式并存儲(chǔ)。

情境一:使用Fiddler+Requests爬取新聞?lì)怉PP接口數(shù)據(jù)情境概述本節(jié)課的任務(wù)書完成Fiddler軟件的安裝配置。完成模擬器軟件的安裝配置。完成Fiddler與模擬器的整合。使用Fiddler定位新聞?lì)怉PP數(shù)據(jù)交互接口與數(shù)據(jù)結(jié)構(gòu)。使用Requests獲取接口數(shù)據(jù)。使用JSON解析接口數(shù)據(jù)。使用CSV存儲(chǔ)APP數(shù)據(jù)。

情境一:使用Fiddler+Requests爬取新聞?lì)怉PP接口數(shù)據(jù)PART02知識(shí)準(zhǔn)備情境一:使用Fiddler+Requests爬取新聞?lì)怉PP接口數(shù)據(jù)知識(shí)準(zhǔn)備引導(dǎo)問(wèn)題APP數(shù)據(jù)交互和Web數(shù)據(jù)交互一樣嗎?如果不一樣,有什么不一樣?如果APP和Web數(shù)據(jù)交互不同,有什么不同?定位并抓取APP數(shù)據(jù)和Web數(shù)據(jù)一樣嗎?如果不一樣,有什么不一樣?我們可以通過(guò)什么方式定位APP數(shù)據(jù)接口?定位APP數(shù)據(jù)可能會(huì)遇到哪些問(wèn)題?如何獲取、解析、存儲(chǔ)APP接口數(shù)據(jù)?

情境一:使用Fiddler+Requests爬取新聞?lì)怉PP接口數(shù)據(jù)知識(shí)準(zhǔn)備知識(shí)點(diǎn)介紹Fiddler介紹Fiddler安裝與配置Fiddler應(yīng)用Android

模擬器介紹Android

模擬器安裝與配置

情境一:使用Fiddler+Requests爬取新聞?lì)怉PP接口數(shù)據(jù)知識(shí)準(zhǔn)備思維導(dǎo)圖

情境一:使用Fiddler+Requests爬取新聞?lì)怉PP接口數(shù)據(jù)知識(shí)準(zhǔn)備Fiddler介紹

Fiddler是一個(gè)HTTP的調(diào)試代理,以代理服務(wù)器的方式,監(jiān)聽系統(tǒng)的HTTP網(wǎng)絡(luò)數(shù)據(jù)流動(dòng)。Fiddler可以讓你檢查所有的HTTP通訊,設(shè)置斷點(diǎn),以及Fiddler所有的“進(jìn)出”的數(shù)據(jù)。Fiddler還包含一個(gè)簡(jiǎn)單卻功能強(qiáng)大的基于JScript.NET事件腳本子系統(tǒng),它可以支持眾多的HTTP調(diào)試任務(wù)。Fiddler安裝與配置

Fiddler是一款軟件工具,以下是相關(guān)操作。1.1.下載軟件

Fiddler有各種不同的版本,你可以根據(jù)需要下載,官網(wǎng)下載地址:

/download/fiddler情境一:使用Fiddler+Requests爬取新聞?lì)怉PP接口數(shù)據(jù)知識(shí)準(zhǔn)備

Fiddler安裝與配置1.2.安裝軟件

運(yùn)行下載的Fiddler安裝包:FiddlerSetup.exe,選定安裝地址,默認(rèn)安裝即可,效果如圖3-2所示。情境一:使用Fiddler+Requests爬取新聞?lì)怉PP接口數(shù)據(jù)知識(shí)準(zhǔn)備

Fiddler安裝與配置1.2.安裝軟件

情境一:使用Fiddler+Requests爬取新聞?lì)怉PP接口數(shù)據(jù)知識(shí)準(zhǔn)備

Fiddler安裝與配置1.3.Fiddler配置

打開Fiddler,效果如圖3-3所示

圖3-3Fiddler安裝情境一:使用Fiddler+Requests爬取新聞?lì)怉PP接口數(shù)據(jù)知識(shí)準(zhǔn)備

Fiddler安裝與配置1.3.Fiddler配置a.配置HTTPS支持

a1:默認(rèn)情況下,Fiddler不會(huì)捕獲和解密安全的HTTPS流量。要捕獲通過(guò)HTTPS發(fā)送的數(shù)據(jù),需要啟用HTTPS流量解密。配置項(xiàng)位于Tools>Options>HTTPS,配置如圖3-4所示。

圖3-4啟用HTTPS流量解密情境一:使用Fiddler+Requests爬取新聞?lì)怉PP接口數(shù)據(jù)知識(shí)準(zhǔn)備

Fiddler安裝與配置1.3.Fiddler配置a.配置HTTPS支持也可以設(shè)置跳過(guò)特定的主機(jī)流量解密,配置如圖3-5所示。

圖3-5過(guò)濾指定主機(jī)情境一:使用Fiddler+Requests爬取新聞?lì)怉PP接口數(shù)據(jù)知識(shí)準(zhǔn)備

Fiddler安裝與配置1.3.Fiddler配置a.配置HTTPS支持HTTPS協(xié)議是安全協(xié)議,通常需要安全密鑰驗(yàn)證等。本次APP移動(dòng)端數(shù)據(jù)偵聽過(guò)程安全驗(yàn)證要求更高,為了在保證安全的情況下提高效率,可以將服務(wù)器密鑰驗(yàn)證忽略,并將FiddlerRootCertificate導(dǎo)出并導(dǎo)入到對(duì)應(yīng)Android機(jī)器中。忽略密鑰驗(yàn)證如圖3-6所示,導(dǎo)出RootCertificate如圖3-7所示。情境一:使用Fiddler+Requests爬取新聞?lì)怉PP接口數(shù)據(jù)知識(shí)準(zhǔn)備

Fiddler安裝與配置1.3.Fiddler配置a.配置HTTPS支持

圖3-6忽略安全密鑰校驗(yàn)情境一:使用Fiddler+Requests爬取新聞?lì)怉PP接口數(shù)據(jù)知識(shí)準(zhǔn)備

Fiddler安裝與配置1.3.Fiddler配置a.配置HTTPS支持

圖3-7導(dǎo)出RootCertificate情境一:使用Fiddler+Requests爬取新聞?lì)怉PP接口數(shù)據(jù)知識(shí)準(zhǔn)備

Fiddler安裝與配置1.3.Fiddler配置b.允許遠(yuǎn)程客戶端連接

配置允許遠(yuǎn)程客戶端連接,保持Fiddler和Android機(jī)器保持長(zhǎng)連接狀態(tài)。配置項(xiàng)位于Tools>Options>Connections,配置如圖3-8所示。

圖3-8允許客戶端遠(yuǎn)程連接情境一:使用Fiddler+Requests爬取新聞?lì)怉PP接口數(shù)據(jù)知識(shí)準(zhǔn)備

Fiddler安裝與配置1.3.Fiddler配置c.配置客戶端應(yīng)用目標(biāo)端口

配置客戶端應(yīng)用目標(biāo)端口,保持Fiddler和Android機(jī)器連接狀態(tài)。配置項(xiàng)位于Tools>Options>Connections,配置如圖3-9所示。

圖3-9配置客戶端應(yīng)用目標(biāo)端口情境一:使用Fiddler+Requests爬取新聞?lì)怉PP接口數(shù)據(jù)知識(shí)準(zhǔn)備Fiddler應(yīng)用

Fiddler的主界面分為工具面板、會(huì)話面板、監(jiān)控面板、狀態(tài)面板。我們需要認(rèn)知的主要是會(huì)話面板和監(jiān)控面板。1.1.會(huì)話面板

會(huì)話面板效果如圖3-10

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論