《大數據采集與分析案例教程》高職全套教學課件_第1頁
《大數據采集與分析案例教程》高職全套教學課件_第2頁
《大數據采集與分析案例教程》高職全套教學課件_第3頁
《大數據采集與分析案例教程》高職全套教學課件_第4頁
《大數據采集與分析案例教程》高職全套教學課件_第5頁
已閱讀5頁,還剩505頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

大數據采集與分析案例教程全套可編輯PPT課件

本課件是可編輯的正常PPT課件緒論目錄CONTENTS0開發環境搭建———Anaconda+PyCharm項目1開源社區數據的采集與解析———requests庫+re模塊應用項目2代碼托管平臺數據的采集與解析———requests庫+lxml庫應用項目3本課件是可編輯的正常PPT課件視頻網站數據的采集與解析———Selenium+BeautifulSoup庫應用目錄CONTENTS項目4租房網站數據的采集與解析———Scrapy框架應用項目5旅游數據的采集———文件存儲+MySQL數據庫應用項目6綜合實踐———爬取和解析求職招聘網站職位數據項目7本課件是可編輯的正常PPT課件緒論0.1實踐知識地圖0.2內容實施安排本課件是可編輯的正常PPT課件知識目標掌握Anaconda開發環境的搭建和包管理方法,掌握PyCharm開發工具的安裝和使用方法。掌握requests庫的使用方法,包括發起請求、獲取響應、設置請求頭和Cookie等。熟悉正則表達式的基礎語法,掌握re模塊的使用方法。熟悉XPath的基礎語法,掌握lxml庫的使用方法。熟悉BeautifulSoup庫的選擇器,掌握BeautifulSoup庫的使用方法。理解Selenium與瀏覽器的交互原理,掌握Selenium的使用方法。理解Scrapy框架的體系結構和數據流,掌握Scrapy框架的基本使用方法。熟悉多種數據存儲方式,掌握文件和MySQL數據庫的操作方法。理解企業軟件開發過程,熟悉項目的需求分析和設計方法。了解Pandas庫和Matplotlib庫的基本使用方法。本課件是可編輯的正常PPT課件技能目標能搭建Anaconda開發環境和管理第三方包,能安裝和使用PyCharm開發工具。能使用requests庫發送請求,采集網頁數據。能使用正則表達式和re模塊解析網頁,提取所需數據。能使用XPath和lxml庫解析網頁,提取所需數據。能使用BeautifulSoup庫解析網頁,提取所需數據。能使用Selenium自動操作瀏覽器,采集和解析網頁數據。能創建和運行Scrapy工程,使用Scrapy采集、解析、存儲數據。能以不同的方式存儲數據,包括不同格式的文件和MySQL數據庫。能使用Pandas庫進行基本的數據分析,并使用Matplotlib庫進行數據可視化。能運用迭代開發思路進行實踐,具備基本的項目開發經驗。具有大數據采集和分析技能的實踐能力,能綜合應用所學知識開發企業項目。本課件是可編輯的正常PPT課件素養目標培養解決問題的能力和創新能力,能靈活運用所學知識解決實際問題。培養自主學習和終身學習的意識,能不斷學習和掌握新知識與新技能。培養團隊合作和溝通協調能力,能夠與他人協作完成項目。養成良好的編程習慣,能夠編寫符合編碼規范的高質量和可維護代碼。本課件是可編輯的正常PPT課件1.開發環境知識地圖開發環境的主要內容包括Anaconda開發環境、PyCharm開發工具,如圖0-1所示。圖0-1本課件是可編輯的正常PPT課件2.數據采集知識地圖數據采集的主要內容包括requests庫、Selenium庫,如圖0-2所示。圖0-2本課件是可編輯的正常PPT課件3.數據解析知識地圖數據解析的主要內容包括re模塊、lxml庫、BeautifulSoup庫,如圖0-3所示。圖0-3本課件是可編輯的正常PPT課件4.數據保存知識地圖數據保存的主要內容包括文件存儲、MySQL數據庫,如圖0-4所示。圖0-4本課件是可編輯的正常PPT課件5.Scrapy框架知識地圖Scrapy框架的主要內容包括Scrapy常用命令、爬蟲Spider、選擇器Selector、Item、管道、settings配置、下載中間件等,如圖0-5所示。圖0-5本課件是可編輯的正常PPT課件6.數據分析與可視化知識地圖數據分析與可視化的主要內容包括Pandas庫、Matplotlib庫,如圖0-6所示。圖0-6本課件是可編輯的正常PPT課件緒論0.1實踐知識地圖0.2內容實施安排本課件是可編輯的正常PPT課件0.2.1實驗項目部分根據大數據采集與分析課程內容,結合企業實際崗位情況,選取Anaconda開發環境、PyCharm開發環境、Requests庫、re模塊、lxml庫、Selenium+BeautifulSoup庫、Scrapy框架、文件和MySQL數據庫等內容,在每個項目里分設了項目需求、項目分析、必備知識、項目實現、項目總結等模塊,見表0-1。表0-1本課件是可編輯的正常PPT課件0.2.1實驗項目部分表0-1(續表)本課件是可編輯的正常PPT課件0.2.1實驗項目部分表0-1(續表)本課件是可編輯的正常PPT課件0.2.1實驗項目部分表0-1(續表)本課件是可編輯的正常PPT課件0.2.2綜合實踐項目部分1.案例結構框架案例對應課程核心知識點,按照企業標準構建,并結合瀑布模型、RUP模型、增量開發思想,主要內容包括項目需求、項目分析、必備知識、項目實現(每個功能的迭代實現)、項目總結。本課件是可編輯的正常PPT課件0.2.2綜合實踐項目部分2.案例主要內容案例選取“求職招聘網站”項目,采用PyCharm+Anaconda開發環境開發,技術選型為“Selenium+lxml庫+文件與數據庫操作+Scrapy框架+Pandas庫+Matplotlib庫”。“求職招聘網站”是一個職位數據的采集與分析系統,可以根據指定的城市名稱和關鍵字爬取和解析求職招聘網站上相關的職位數據,對爬取的職位數據進行分析,并以圖表的方式展示分析結果,以幫助使用者了解某市某個職位的招聘行情。本課件是可編輯的正常PPT課件0.2.2綜合實踐項目部分3.案例階段劃分根據訓練的知識點,項目可分為6個階段。第一階段主要訓練使用Selenium庫爬取網頁數據;第二階段主要訓練使用XPath路徑表達式和lxml庫解析網頁數據;第三階段主要訓練使用文件和數據庫進行數據存儲;第四階段主要訓練使用Scrapy框架對程序進行重構;第五階段主要訓練使用Pandas庫進行數據分析;第六階段主要訓練使用Matplotlib庫繪制圖表。本課件是可編輯的正常PPT課件0.2.2綜合實踐項目部分3.案例階段劃分“求職招聘網站”的迭代內容如表0-2所示。表0-2本課件是可編輯的正常PPT課件0.2.2綜合實踐項目部分3.案例階段劃分表0-2(續表)本課件是可編輯的正常PPT課件0.2.2綜合實踐項目部分3.案例階段劃分表0-2(續表)本課件是可編輯的正常PPT課件項目1開發環境搭建———Anaconda+PyCharm本課件是可編輯的正常PPT課件學習目標掌握Anaconda開發環境的下載與安裝方法。掌握Anaconda的包管理方式,包括AnacondaNavigator和conda命令。掌握PyCharm開發工具的下載與安裝方法。掌握PyCharm開發工具的基本操作和使用方法。本課件是可編輯的正常PPT課件技能目標能獨立完成Anaconda開發環境的下載與安裝。能使用Anaconda進行包管理,包括安裝、更新和刪除包。能獨立完成PyCharm開發工具的下載與安裝。能熟練使用PyCharm開發工具進行代碼編寫、調試和運行。能夠運用所學知識下載、安裝和配置開發環境。本課件是可編輯的正常PPT課件素養目標具有創新能力,能夠靈活運用所學知識配置開發環境、管理第三方包和創建項目。培養良好的職業道德和開源、版權意識,下載和使用開源或正版軟件。本課件是可編輯的正常PPT課件1.1項目需求(1)搭建AnacondaPython開發環境,包括Anaconda的下載、安裝與包管理。(2)下載與安裝PyCharm開發工具。(3)使用PyCharm開發工具創建一個項目,并能夠正常運行,如圖1-1和圖1-2所示。圖1-1圖1-2本課件是可編輯的正常PPT課件1.2項目分析1.搭建AnacondaPython開發環境(1)從Anaconda官網下載Anaconda安裝包,運行安裝包安裝Anaconda。(2)通過AnacondaNavigator或命令行安裝第三方包。2.下載與安裝PyCharm開發工具(1)從PyCharm官網下載PyCharm安裝包。(2)運行安裝包安裝PyCharm。本課件是可編輯的正常PPT課件1.2項目分析3.創建項目(1)使用PyCharm創建一個項目。(2)配置PyCharm的Python解釋器。(3)使用PyCharm運行項目。操作流程如圖1-3所示。圖1-3本課件是可編輯的正常PPT課件1.3必備知識1.3.1Anaconda簡介開發一個Python項目,有時需要用到一些第三方模塊,需要手動下載并安裝這些第三方模塊。如果Python項目使用到的第三方模塊非常多,下載并安裝這些第三方模塊將會費時費力,這時就需要用到Anaconda。Anaconda是一個集成的Python運行環境,它除了包含Python本身的運行環境之外,還集成了很多第三方模塊,如requests、lxml、BeautifulSoup等。安裝完Anaconda后,Python運行環境和這些第三方模塊都不用再安裝了。本課件是可編輯的正常PPT課件1.3必備知識1.3.2PyCharm簡介PyCharm是一種PythonIDE,帶有一整套可以幫助用戶在使用Python語言開發時提高其效率的工具,如調試、語法高亮、Project管理、代碼跳轉、智能提示、自動完成、單元測試、版本控制等。此外,該IDE還提供了一些高級功能,以用于支持Django框架下的專業Web開發。本課件是可編輯的正常PPT課件1.4項目實現步驟1:Anaconda的下載與安裝(1)輸入網址,并按Enter鍵,訪問Anaconda官網;然后單擊“FreeDownload”按鈕,下載Anaconda的安裝程序,如圖1-4所示。圖1-4本課件是可編輯的正常PPT課件1.4項目實現步驟1:Anaconda的下載與安裝(2)雙擊運行已經下載完成的Anaconda安裝程序,如圖1-5所示。(3)在Anaconda的安裝界面中單擊“Next”按鈕進入下一步;然后單擊“IAgree”按鈕,同意許可協議進入下一步,如圖1-6所示。圖1-5圖1-6本課件是可編輯的正常PPT課件1.4項目實現步驟1:Anaconda的下載與安裝(4)直接單擊“Next”按鈕,默認會為當前系統用戶安裝Anaconda;然后選擇一個合適的安裝位置(默認會安裝到C盤),單擊“Next”按鈕進入下一步,如圖1-7所示。圖1-7本課件是可編輯的正常PPT課件1.4項目實現步驟1:Anaconda的下載與安裝(5)選中第1、第3和第4個復選框,然后單擊“Install”按鈕開始安裝Anaconda,如圖1-8所示。圖1-8本課件是可編輯的正常PPT課件1.4項目實現步驟1:Anaconda的下載與安裝(6)安裝完成后,單擊“Next”和“Finish”按鈕關閉安裝界面,如圖1-9~圖1-11所示。圖1-9圖1-10圖1-11本課件是可編輯的正常PPT課件1.4項目實現步驟1:Anaconda的下載與安裝(7)在開始菜單中選擇“AnacondaPrompt”選項,啟動“AnacondaPrompt”程序;輸入“python”并按Enter鍵,若顯示圖1-12所示的界面,則表示Anaconda安裝成功。圖1-12本課件是可編輯的正常PPT課件1.4項目實現步驟2:Anaconda的包管理(1)在開始菜單中選擇“AnacondaNavigator”選項,啟動“AnacondaNavigator”程序;然后在“AnacondaNavigator”程序中選擇“Environments”選項,可以查看Anaconda已安裝的所有第三方包,如圖1-13所示。圖1-13本課件是可編輯的正常PPT課件1.4項目實現步驟2:Anaconda的包管理(2)在第三方包列表右上方的輸入框中輸入某個包的包名(如“requests”),可以查看Anaconda是否已安裝某個第三方包,如圖1-14所示。輸入包名“selenium”,會發現未找到相關包,如圖1-15所示。圖1-14圖1-15本課件是可編輯的正常PPT課件1.4項目實現步驟2:Anaconda的包管理(3)如果Anaconda沒有安裝某個第三方包,可以通過“AnacondaNavigator”程序安裝。①選擇“All”選項,然后輸入要安裝的第三方包的名稱,如輸入“selenium”,這時就能找到相關的第三方包,如圖1-16和圖1-17所示。圖1-16圖1-17本課件是可編輯的正常PPT課件1.4項目實現步驟2:Anaconda的包管理(3)如果Anaconda沒有安裝某個第三方包,可以通過“AnacondaNavigator”程序安裝。②選中需要安裝的第三方包,并單擊“Apply”按鈕,如圖1-18所示;接著會彈出“InstallPackages”對話框,等待一會兒后,在窗口中單擊“Apply”按鈕,開始安裝第三方包,如圖1-19所示。圖1-18圖1-19本課件是可編輯的正常PPT課件1.4項目實現步驟2:Anaconda的包管理(3)如果Anaconda沒有安裝某個第三方包,可以通過“AnacondaNavigator”程序安裝。③安裝完成之后,選擇“Installed”選項,輸入剛安裝的第三方包的名稱“selenium”,成功顯示已安裝的第三方包的相關信息,如圖1-20所示。圖1-20本課件是可編輯的正常PPT課件1.4項目實現步驟2:Anaconda的包管理(4)如果Anaconda沒有安裝某個第三方包,也可以通過conda或pip命令安裝。①在開始菜單中選擇“AnacondaPrompt”選項,啟動“AnacondaPrompt”命令行程序;然后輸入“condainstall+包名”命令,如“condainstallpymysql”,按”Enter”鍵后開始查找第三方包,如圖1-21所示;接著在命令行中輸入”y”,按Enter鍵后開始安裝第三方包,如圖1-22所示。圖1-21本課件是可編輯的正常PPT課件1.4項目實現步驟2:Anaconda的包管理(4)如果Anaconda沒有安裝某個第三方包,也可以通過conda或pip命令安裝。圖1-22本課件是可編輯的正常PPT課件1.4項目實現步驟2:Anaconda的包管理(4)如果Anaconda沒有安裝某個第三方包,也可以通過conda或pip命令安裝。②在“AnacondaPrompt”命令行程序中輸入“pipinstall+包名”命令,如“pipinstallredis”,按Enter鍵后開始安裝第三方包,如圖1-23所示。圖1-23本課件是可編輯的正常PPT課件1.4項目實現步驟2:Anaconda的包管理(4)如果Anaconda沒有安裝某個第三方包,也可以通過conda或pip命令安裝。若出現圖1-24所示錯誤,則在下載命令中加上國內鏡像即可,如圖1-25所示。圖1-24圖1-25本課件是可編輯的正常PPT課件1.4項目實現步驟3:下載與安裝PyCharm(1)從官網下載PyCharm。網址:/pycharm。(2)下載PyCharm社區版。PyCharm分為專業版(PyCharmProfessionalEdition)和社區版(PyCharmCommunityEdition)。社區版是免費的,專業版支持一些高級功能,如圖1-26所示。圖1-26本課件是可編輯的正常PPT課件1.4項目實現步驟3:下載與安裝PyCharm(3)雙擊下載的PyCharm安裝程序,默認安裝即可,如圖1-27~圖1-30所示。圖1-27圖1-28本課件是可編輯的正常PPT課件1.4項目實現步驟3:下載與安裝PyCharm(3)雙擊下載的PyCharm安裝程序,默認安裝即可,如圖1-27~圖1-30所示。圖1-29圖1-30本課件是可編輯的正常PPT課件1.4項目實現步驟4:創建工程(1)安裝成功后,從開始菜單中找到PyCharm并運行。啟動PyCharm,第一次啟動時會出現如下界面,選中復選框后,單擊“Continue”按鈕,如圖1-31和圖1-32所示。圖1-31圖1-32本課件是可編輯的正常PPT課件1.4項目實現步驟4:創建工程(2)在歡迎界面中選擇“Projects”→“NewProject”選項,彈出創建新項目對話框,如圖1-33所示。圖1-33本課件是可編輯的正常PPT課件1.4項目實現步驟4:創建工程(3)在“Location”文本框中輸入項目名稱“pyspider”,項目的存放位置為D盤根目錄,如圖1-34所示。圖1-34本課件是可編輯的正常PPT課件1.4項目實現步驟4:創建工程(4)選擇“Previouslyconfiguredinterpreter”→“AddInterpreter”→“AddLocalInterpreter”選項,彈出添加Python解釋器窗口,如圖1-35和圖1-36所示。圖1-35本課件是可編輯的正常PPT課件1.4項目實現步驟4:創建工程(5)選擇“CondaEnvironment”選項,并找到Conda的可執行程序conda.exe(一般在anaconda3安裝目錄的Scripts目錄下),然后單擊“OK”按鈕,如圖1-37和圖1-38所示。圖1-37圖1-38本課件是可編輯的正常PPT課件1.4項目實現步驟4:創建工程(6)單擊“LoadEnvironments”按鈕加載Anaconda環境,然后單擊“OK”按鈕。最后,在創建新項目對話框中單擊“Create”按鈕,創建項目,如圖1-39和圖1-40所示。圖1-39圖1-40本課件是可編輯的正常PPT課件1.4項目實現步驟4:創建工程(7)項目創建成功后,進入PyCharm主界面。PyCharm默認會在項目中創建一個main.py文件,如圖1-41所示。圖1-41本課件是可編輯的正常PPT課件1.4項目實現步驟4:創建工程(8)運行。在打開的main.py文件代碼的任意位置右擊,在彈出的快捷菜單中選擇“Run'main'”選項,運行程序,如圖1-42和圖1-43所示。圖1-42圖1-43本課件是可編輯的正常PPT課件1.5項目總結本項目完成了Anaconda+PyCharm開發環境的搭建。首先,在項目需求階段以圖文的方式說明了項目的需求,此階段點名了項目包括搭建AnacondaPython開發環境、下載與安裝PyCharm、創建項目3個子任務。其次,在項目分析階段明確了項目的實現思路。最后,在項目實現階段分四步來實現項目的3個子任務。第一步完成Anaconda的下載與安裝,第二步安裝Anaconda的第三方包,第三步完成PyCharm的下載與安裝,第四步使用PyCharm創建項目并運行。綜上所述,本項目動手搭建了Anaconda+PyCharm開發環境,強化了實踐能力。同時分別使用AnacondaNavigator和命令行的方式管理Anaconda的第三方包,讓人們體會到解決問題的方式有多種,在實際操作過程中需要根據情況靈活運用。最后,使用PyCharm創建了一個項目并運行,以驗證開發環境是否搭建成功,進而為后續的項目學習做好鋪墊。本課件是可編輯的正常PPT課件1.6學習評價育人效果評價表項目:開發環境搭建——Anaconda+PyCharm

班級:

姓名:

小組:

自我評價總分:

小組評價總分:

教師評價總分:

本課件是可編輯的正常PPT課件1.6學習評價育人效果評價表項目:開發環境搭建——Anaconda+PyCharm

班級:

姓名:

小組:

自我評價總分:

小組評價總分:

教師評價總分:

本課件是可編輯的正常PPT課件項目2開源社區數據的采集與解析

——requests庫+re模塊應用本課件是可編輯的正常PPT課件學習目標掌握requests庫的基本使用方法,包括發起請求、獲取響應信息等。掌握使用requests庫發送帶有參數、頭部信息和Cookie的請求。熟悉正則表達式的基本語法。掌握使用re模塊進行正則表達式的查找、匹配和替換操作的方法。了解瀏覽器開發者工具的功能和使用方法。

本課件是可編輯的正常PPT課件技能目標能使用requests庫發送HTTP請求,并獲取返回的響應信息。能使用requests庫設置請求參數、請求頭和Cookie。能使用正則表達式解析網頁,提取所需的信息。能使用re模塊對網頁內容進行查找、匹配和替換操作。能使用瀏覽器開發者工具分析網頁請求。本課件是可編輯的正常PPT課件素養目標培養信息檢索和分析能力,能夠在網絡上檢索和分析所需的信息。培養解決問題的能力和創新能力,能夠利用所學知識解決實際問題。培養自主學習和終身學習的意識,能夠不斷學習和更新知識。養成良好的編程習慣,能夠編寫符合編碼規范的高質量代碼。培養大數據采集和分析技能的實踐能力,綜合應用requests庫和re模塊,開發“開源社區數據的采集與解析”項目。本課件是可編輯的正常PPT課件2.1

項目需求(1)使用requests庫完成對開源中國軟件庫頁面的抓取。①以GET方式訪問軟件庫首頁,獲取首頁的源代碼,軟件庫首頁如圖2-1所示。圖2-1本課件是可編輯的正常PPT課件2.1

項目需求(1)使用requests庫完成對開源中國軟件庫頁面的抓取。②以GET方式訪問軟件庫首頁并附帶請求參數,獲取與“Python”相關的最新收錄的軟件項目,軟件庫首頁中與“Python”相關的最新收錄的軟件項目如圖2-2所示。圖2-2本課件是可編輯的正常PPT課件2.1

項目需求(1)使用requests庫完成對開源中國軟件庫頁面的抓取。③以POST方式請求某個軟件項目的發布評論URL,模擬對軟件項目發表評論,發表評論功能如圖2-3和圖2-4所示。圖2-3圖2-4本課件是可編輯的正常PPT課件2.1

項目需求(2)使用正則表達式與re模塊完成對開源中國軟件庫頁面的解析。①使用正則表達式對頁面源代碼進行解析,獲取所有的編程語言數據,如圖2-5所示。圖2-5本課件是可編輯的正常PPT課件2.1

項目需求(2)使用正則表達式與re模塊完成對開源中國軟件庫頁面的解析。②使用正則表達式對頁面源碼進行解析,獲取新收錄的“Python”軟件數據,如圖2-6所示。圖2-6本課件是可編輯的正常PPT課件2.1

項目需求(2)使用正則表達式與re模塊完成對開源中國軟件庫頁面的解析。③使用正則表達式對頁面源代碼進行解析,獲取軟件的詳細數據,如圖2-7所示。圖2-7本課件是可編輯的正常PPT課件2.2

項目分析(1)使用requests庫完成對開源中國軟件庫頁面的抓取。①使用get方法爬取頁面源代碼。②使用瀏覽器分析請求參數。③根據請求參數爬取頁面源代碼。④保存頁面源代碼。⑤使用post方法發表評論。操作流程如圖2-8所示。圖2-8本課件是可編輯的正常PPT課件2.2

項目分析(2)使用正則表達式與re模塊完成對開源中國軟件庫頁面數據的解析。①分析編程語言板塊源代碼規律。②定義正則獲取編程語言數據。③分析Python軟件板塊源代碼規律。④定義正則獲取Python軟件數據。⑤分析軟件詳情頁源代碼規律。⑥使用正則對象獲取軟件基本信息。操作流程如圖2-9所示。圖2-9本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫requests是一個優雅且簡單的PythonHTTP網絡庫,它是一個第三方庫。requests使得發送HTTP請求非常容易,無須手動添加查詢字符串到URL中,也不需要對POST和PUT數據進行表單編碼,只需要使用它對應的函數和參數即可。官方文檔:https://requests.readthedocs.io/en/latest/。中文文檔:https://requests.readthedocs.io/projects/cn/zh_CN/latest/。本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫1.導入requests庫使用requests庫發送HTTP請求時需要先導入requests庫。#導入requests庫importrequests2.get函數在requests庫中,可以通過get函數來發送HTTPGET請求。該函數接收一個URL參數,requests庫會向該URL發送GET請求,然后接收并返回一個響應對象。本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫【示例】使用get函數以HTTPGET方式請求開源中國gitee平臺,獲取響應。#導入requests庫importrequests#以GET方式請求開源中國gitee平臺res=requests.get('/explore')#查看響應print(type(res))print(res)以上實例代碼的運行結果如圖2-10所示。圖2-10本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫3.Response類在requests庫中,Response類的實例對象封裝了服務器返回的響應信息,可以通過訪問它的屬性獲取響應信息,包括狀態碼、響應頭、響應內容等。【示例】使用get函數請求開源中國gitee平臺,獲取響應的狀態碼、響應頭、Cookies和響應內容。#導入requests庫importrequests#以GET方式請求開源中國gitee平臺res=requests.get('/explore')#查看響應狀態碼print(res.status_code)#查看響應頭print(res.headers)#查看響應Cookiesprint(res.cookies)#查看響應內容print(res.text)本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫3.Response類【示例】以上實例代碼的運行結果如圖2-11所示。圖2-11本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫4.請求參數若想給請求的URL指定請求參數,可以將參數直接加在URL后面,用問號(?)和與號(&)進行分隔。【示例】在請求URL中指定請求參數lang和order,獲取gitee平臺的“Python”推薦項目并按標星數從高到低排序。#導入requests庫importrequests#以GET方式請求gitee平臺,獲取"Python"推薦項目并按標星數從高到低排序res=requests.get('/explore/all?lang=Python&order=starred')#查看響應內容print(res.text)本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫4.請求參數以上實例代碼的運行結果如圖2-12所示。圖2-12本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫4.請求參數【示例】指定請求參數lang和order,獲取gitee平臺的JavaScript推薦項目并按標星數從高到低排序。#導入requests庫importrequests#請求參數params={'lang':'JavaScript','order':'starred'}#以GET方式請求gitee平臺,獲取"JavaScript"推薦項目并按標星數從高到低排序res=requests.get('/explore/all',params=params)#查看響應內容print(res.text)本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫4.請求參數【示例】以上實例代碼的運行結果如圖2-13所示。圖2-13本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫5.請求頭如果在使用requests庫發送HTTP請求時沒有發送請求頭,某些網站可能會發現這并不是一個瀏覽器發起的請求,于是會限制訪問這些資源,導致網頁抓取失敗。【示例】使用get函數請求gitee搜索頁面,獲取與python爬蟲相關的開源項目。#導入requests庫importrequests#請求參數params={'type':'repository','q':'python爬蟲'}#以GET方式訪問gitee搜索頁面,搜索與python爬蟲相關的開源項目res=requests.get('',params=params)#查看響應狀態碼print(res.status_code)#查看響應內容print(res.text)本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫5.請求頭【示例】以上實例代碼的運行結果如圖2-14所示。圖2-14本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫5.請求頭【示例】使用get函數請求gitee搜索頁面,發送User-Agent請求頭,偽裝成瀏覽器去獲取與python爬蟲相關的開源項目。#導入requests庫importrequests#請求參數params={

'type':'repository',

'q':'python爬蟲'}#請求頭headers={

'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/Safari/537.36'}#以GET方式訪問gitee搜索頁面,搜索與python爬蟲相關的開源項目res=requests.get('',params=params,headers=headers)#查看響應狀態碼print(res.status_code)#查看響應內容print(res.text)本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫5.請求頭【示例】以上實例代碼的運行結果如圖2-15所示。圖2-15本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫6.CookieCookie(有時也用其復數形式Cookies)是指某些網站為了辨別用戶身份、進行會話跟蹤而暫時存儲在客戶端的一段文本數據(通常經過加密)。在requests庫中發送HTTP請求時可以通過兩種方式攜帶Cookie,一種方式是直接將包含Cookie信息的請求頭作為headers參數的值,另一種方式是將RequestsCookieJar類的實例對象作為cookies參數的值,該對象中包含Cookie信息。本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫6.Cookie【示例】通過兩種不同的方式發送請求并攜帶Cookie信息,訪問登錄后的gitee開源軟件頁面。(1)登錄gitee平臺,通過瀏覽器的開發者工具獲取登錄后的Cookie信息,如圖2-16所示。圖2-16本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫6.Cookie(2)使用get函數請求gitee開源軟件頁面并附帶Cookie信息,Cookie信息通過headers參數設置。本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫6.Cookie(2)使用get函數請求gitee開源軟件頁面并附帶Cookie信息,Cookie信息通過headers參數設置。以上實例代碼的運行結果如圖2-17所示。圖2-17本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫6.Cookie(3)創建RequestsCookieJar類的實例對象,調用set方法保存Cookie信息,把實例對象作為cookies參數的值。本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫6.Cookie(3)創建RequestsCookieJar類的實例對象,調用set方法保存Cookie信息,把實例對象作為cookies參數的值。兩種方式的運行結果相同,如圖2-18所示。圖2-18本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫7.post函數在requests庫中,可以通過post函數來發送HTTPPOST請求。該函數的URL參數是請求的網址,data參數是一個字典類型的值,字典中的每一對鍵值都是一對POST請求參數。requests庫會向該URL發送POST請求和請求參數,接收并返回一個響應對象。本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫7.post函數【示例】使用post函數以POST方式請求“/post”,發送請求數據并獲取響應內容。本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫7.post函數【示例】以上實例代碼的運行結果如圖2-19所示。圖2-19本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫7.post函數【示例】使用post函數模擬Ajax請求gitee開源項目的標星URL,對cuber開源項目進行標星。(1)訪問cuber開源項目主頁,單擊“Starred”按鈕對該項目進行標星,然后通過瀏覽器的開發者工具獲取瀏覽器請求的標星URL、請求頭及Cookie信息,如圖2-20和圖2-21所示。圖2-20本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫7.post函數【示例】

圖2-21本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫7.post函數(2)定義變量headers,用于保存請求頭信息,包括User-Agent、Cookie、X-CSRF-Token、X-Requested-With;使用post函數向cuber開源項目的標星URL發送POST請求,并附帶請求頭,獲取響應狀態碼和內容。本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫7.post函數(3)在cuber開源項目的主頁中單擊“Starred”按鈕取消該項目的標星,如圖2-22所示。圖2-22本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫7.post函數(4)運行Python代碼,使用post函數對cuber開源項目進行標星,代碼運行結果如圖2-23所示。圖2-23本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫7.post函數(5)刷新cuber開源項目的主頁,可以看到已成功對cuber開源項目進行標星(標星數從為1039變成了1040),如圖2-24所示。圖2-24本課件是可編輯的正常PPT課件2.3

必備知識2.3.2re模塊正則表達式并非Python獨有,它也可以用在其他編程語言中。但是Python中的re模塊提供了完整的正則表達式實現,利用它可以方便地使用正則表達式。re模塊是一個Python內置的模塊,其中提供了豐富的方法來實現文本的匹配、查找、替換、分割等功能。本課件是可編輯的正常PPT課件2.3

必備知識2.3.1requests庫7.post函數(5)刷新cuber開源項目的主頁,可以看到已成功對cuber開源項目進行標星(標星數從為1039變成了1040),如圖2-24所示。圖2-24本課件是可編輯的正常PPT課件2.3

必備知識2.3.2re模塊1.正則表達式的基礎語法正則表達式是一種文本匹配的模式,可以用來檢查一個文本中是否含有某種子文本、替換匹配的子文本或取出符合某個條件的子文本等。【示例】使用正則表達式“[A-za-z]+\s[A-za-z]+”匹配和提取段落中所有的英文名字。正則表達式的“鼻祖”或許可一直追溯到科學家對人類神經系統工作原理的早期研究。美國新澤西州的WarrenMcCulloch和出生在美國底特律的WalterPitts這兩位神經生理方面的科學家,研究出了一種用數學方式來描述神經網絡的新方法,他們創造性地將神經系統中的神經元描述成了小而簡單的自動控制元,從而做出了一項偉大的工作革新。匹配結果如下。WarrenMcCullochWalterPitts正則表達式的優點是可以靈活地進行文本匹配和定位,適用于各種類型的數據格式。缺點是對于復雜的文本匹配和定位,正則表達式可能會變得非常復雜,難以理解和維護。本課件是可編輯的正常PPT課件2.3

必備知識2.3.2re模塊2.導入re模塊使用re模塊之前需要先導入,導入方法如下。#導入re模塊importre本課件是可編輯的正常PPT課件2.3

必備知識2.3.2re模塊3.match方法re模塊中提供了match方法從給定字符串的開頭進行匹配,它接收2個參數:正則表達式、要匹配的字符串,如果匹配成功,則返回匹配結果(Match類的實例對象),如果匹配失敗,則返回None。匹配成功后,通過group方法可以返回匹配到的內容,span方法可以返回匹配的范圍(索引)。本課件是可編輯的正常PPT課件2.3

必備知識2.3.2re模塊3.match方法【示例】使用math方法匹配字符串開頭,并獲取匹配結果。本課件是可編輯的正常PPT課件2.3

必備知識2.3.2re模塊3.match方法【示例】運行結果如圖2-25所示。圖2-25如果正則表達式中有圓括號括起來的部分,那么這個部分就作為一組,可以通過group方法并指定參數獲取對應組的匹配內容。如果正則表達式中沒有圓括號括起來的部分,則不會進行分組。本課件是可編輯的正常PPT課件2.3

必備知識2.3.2re模塊3.match方法【示例】使用group方法和參數獲取分組匹配的內容。運行結果如圖2-26所示。圖2-26本課件是可編輯的正常PPT課件2.3

必備知識2.3.2re模塊4.findall和finditer方法如果想要返回所有匹配的結果,就需要使用re模塊中的findall方法了。該方法返回一個列表,其中包含了所有匹配的內容。【示例】使用findall方法查找段落中所有的數字。本課件是可編輯的正常PPT課件2.3

必備知識2.3.2re模塊4.findall和finditer方法運行結果如圖2-27所示。圖2-27finditer和findall方法的功能相似,findall方法會將所有匹配到的內容以列表的形式返回,當匹配到的內容非常多時會消耗大量內存資源;finditer方法會返回一個迭代器,只有對迭代器進行迭代時才會進行匹配,比較節省內存資源。本課件是可編輯的正常PPT課件2.3

必備知識2.3.2re模塊4.findall和finditer方法【示例】使用finditer方法查找段落中所有的關鍵字。本課件是可編輯的正常PPT課件2.3

必備知識2.3.2re模塊4.findall和finditer方法【示例】運行結果如圖2-28所示。圖2-28本課件是可編輯的正常PPT課件2.3

必備知識2.3.2re模塊4.findall和finditer方法遍歷迭代器,獲取所有匹配的內容。本課件是可編輯的正常PPT課件2.3

必備知識2.3.2re模塊4.findall和finditer方法運行結果如圖2-29所示。圖2-29本課件是可編輯的正常PPT課件2.3

必備知識2.3.2re模塊5.sub方法可以使用re模塊的sub方法來查找和替換字符串中的內容,該方法接收3個參數:正則表達式、替換后的內容和原字符串,返回原字符串替換后的內容。本課件是可編輯的正常PPT課件2.3

必備知識2.3.2re模塊5.sub方法【示例】使用sub方法替換段落中的所有關鍵字為×××。本課件是可編輯的正常PPT課件2.3

必備知識2.3.2re模塊5.sub方法【示例】運行結果如圖2-30所示。圖2-30在進行字符串替換時,可以使用普通字符進行替換,也可以通過“\N”提取分組信息進行替換,N表示分組編號。本課件是可編輯的正常PPT課件2.3

必備知識2.3.2re模塊5.sub方法【示例】使用sub方法替換所有超鏈接的href屬性值。本課件是可編輯的正常PPT課件2.3

必備知識2.3.2re模塊5.sub方法【示例】運行結果如圖2-31所示。圖2-31本課件是可編輯的正常PPT課件2.3

必備知識2.3.2re模塊6.貪婪模式在使用正則表達式“.*”或“.+”進行匹配時,默認會使用貪婪模式,盡可能多地匹配字符。【示例】使用貪婪模式查找和匹配所有<li>標簽。本課件是可編輯的正常PPT課件2.3

必備知識2.3.2re模塊6.貪婪模式【示例】運行結果如圖2-32所示。圖2-32貪婪模式有時獲得的并不是想要的結果,這時可以使用非貪婪模式,非貪婪模式的寫法是“.*?”或“.+?”(在“.*”或“.+”后面加個“?”號)。本課件是可編輯的正常PPT課件2.3

必備知識2.3.2re模塊6.貪婪模式【示例】使用非貪婪模式查找和匹配所有<li>標簽運行結果如圖2-33所示。圖2-33本課件是可編輯的正常PPT課件2.3

必備知識2.3.2re模塊7.compile方法使用compile方法可以將一個正則表達式編譯成一個正則表達式對象(Pattern類的實例對象),這個對象可以在以后的匹配中被高效地使用,而不需要再次解釋表達式的語法結構。【示例】使用正則表達式對象匹配多個字符串。本課件是可編輯的正常PPT課件2.3

必備知識2.3.2re模塊7.compile方法運行結果如圖2-34所示。圖2-34本課件是可編輯的正常PPT課件2.4項目實現步驟1:訪問軟件庫首頁(1)新建文件index.py,在文件中使用import語句導入requests庫;使用requests庫的get函數訪問開源中國軟件庫首頁,查看狀態碼和響應內容。#導入requests庫importrequests#以GET方式訪問開源中國軟件庫首頁res=requests.get('/project')#查看響應狀態碼print(res.status_code)#查看響應內容print(res.text)本課件是可編輯的正常PPT課件2.4項目實現步驟1:訪問軟件庫首頁運行代碼時會出現狀態碼403,如圖2-35所示。圖2-35本課件是可編輯的正常PPT課件2.4項目實現步驟1:訪問軟件庫首頁(2)編輯index.py文件,定義字典類型變量headers,在字典中保存User-Agent請求頭信息;然后給get函數添加參數headers,參數值為變量headers,偽裝成瀏覽器訪問開源中國軟件庫首頁。#請求頭信息headers={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/Safari/537.36'}#以get方式訪問開源中國軟件庫首頁,附帶請求頭res=requests.get('/project',headers=headers)......本課件是可編輯的正常PPT課件2.4項目實現步驟1:訪問軟件庫首頁再次運行代碼,成功獲取軟件庫首頁的頁面內容,如圖2-36所示。圖2-36本課件是可編輯的正常PPT課件2.4項目實現步驟2:獲取新收錄的軟件(1)在軟件庫首頁的“最新軟件”選項區中單擊”所有編程語言“下拉按鈕,在彈出的下拉列表中選擇“Python”選項,如圖2-37所示;然后查看瀏覽器地址欄中參數的變化,獲取請求參數,如圖2-38所示。圖2-37本課件是可編輯的正常PPT課件2.4項目實現步驟2:獲取新收錄的軟件圖2-38本課件是可編輯的正常PPT課件2.4項目實現步驟2:獲取新收錄的軟件(2)編輯index.py文件,定義字典類型變量params,字典中保存所有請求參數;然后給get函數添加參數params,參數值為變量params,訪問軟件庫首頁獲取Python相關的新收錄的軟件。本課件是可編輯的正常PPT課件2.4項目實現步驟2:獲取新收錄的軟件運行代碼,成功獲取與Python相關的新收錄的軟件內容,如圖2-39所示。圖2-39本課件是可編輯的正常PPT課件2.4項目實現步驟2:獲取新收錄的軟件(3)使用open函數以寫方式打開一個index.html文件(若不存在,則會自動創建),使用strip方法把響應內容中的大段空白去除,再使用write方法把響應內容寫入文件中。本課件是可編輯的正常PPT課件2.4項目實現步驟2:獲取新收錄的軟件運行代碼,成功把響應內容保存為HTML文件,如圖2-40所示。圖2-40本課件是可編輯的正常PPT課件2.4項目實現步驟3:發表評論(1)在軟件庫首頁中訪問某個軟件的詳情頁面,在詳情頁面的評論板塊單擊“點擊引領話題”按鈕,會自動跳轉到該軟件的評論頁面,如圖2-41和圖2-42所示。圖2-41本課件是可編輯的正常PPT課件2.4項目實現步驟3:發表評論(1)在軟件庫首頁中訪問某個軟件的詳情頁面,在詳情頁面的評論板塊單擊“點擊引領話題”按鈕,會自動跳轉到該軟件的評論頁面,如圖2-41和圖2-42所示。圖2-42本課件是可編輯的正常PPT課件2.4項目實現步驟3:發表評論(2)在評論頁面的輸入框中輸入評論內容后單擊綠色的發送按鈕,將會彈出登錄對話框,如圖2-43和圖2-44所示。圖2-44本課件是可編輯的正常PPT課件2.4項目實現步驟3:發表評論(3)在登錄框中輸入手機號和驗證碼,單擊“登錄/注冊”按鈕,如圖2-45所示;登錄成功后會自動關閉登錄對話框,此時打開瀏覽器開發者工具,再次單擊綠色的發送按鈕發表評論,如圖2-46所示。圖2-45本課件是可編輯的正常PPT課件2.4項目實現步驟3:發表評論(3)在登錄框中輸入手機號和驗證碼,單擊“登錄/注冊”按鈕,如圖2-45所示;登錄成功后會自動關閉登錄對話框,此時打開瀏覽器開發者工具,再次單擊綠色的發送按鈕發表評論,如圖2-46所示。圖2-46本課件是可編輯的正常PPT課件2.4項目實現步驟3:發表評論(4)評論成功后,通過開發者工具可以查看到發表評論請求的URL、請求頭、Cookie及請求數據,如圖2-47和圖2-48所示。圖2-47本課件是可編輯的正常PPT課件2.4項目實現步驟3:發表評論(4)評論成功后,通過開發者工具可以查看到發表評論請求的URL、請求頭、Cookie及請求數據,如圖2-47和圖2-48所示。圖2-48本課件是可編輯的正常PPT課件2.4項目實現步驟3:發表評論(5)新建文件comment.py,導入requests庫,并定義變量url、headers、form_data,用于保存從開發者工具獲取的請求的URL、請求頭、Cookie及請求數據,Cookie保存到請求頭中。本課件是可編輯的正常PPT課件2.4項目實現步驟3:發表評論(6)使用post函數請求評論URL,并給post函數添加headers、data參數,發送請求時附帶請求頭、Cookie及請求數據,查看響應的狀態碼和響應內容。#以POST方式請求發表評論URL,并發送評論內容res=requests.post(url,headers=headers,data=form_data)#查看響應狀態碼print(res.status_code)#查看響應內容print(res.text)本課件是可編輯的正常PPT課件2.4項目實現步驟3:發表評論(6)運行代碼,評論成功,獲取響應內容,如圖2-49所示。圖2-49如果評論間隔時間太短,則會出現圖2-50所示的響應內容。圖2-50本課件是可編輯的正常PPT課件2.4項目實現步驟3:發表評論(7)刷新軟件評論頁面,可以看到評論的內容已經正常顯示出來了,如圖2-51所示。圖2-51本課件是可編輯的正常PPT課件2.4項目實現步驟4:獲取編程語言數據(1)新建文件index_parse.py,使用open函數以讀方式打開index.html文件,并使用read方法讀取文件內容,獲取軟件庫頁面的源代碼。#以讀方式打開index.html文件withopen('index.html',encoding='utf-8')asfile:#讀取index.html文件內容,獲取頁面源代碼html=file.read()print(html)本課件是可編輯的正常PPT課件2.4項目實現步驟4:獲取編程語言數據(1)運行代碼,成功從文件中獲得軟件庫頁面的源代碼,如圖2-52所示。圖2-52本課件是可編輯的正常PPT課件2.4項目實現步驟4:獲取編程語言數據(2)使用瀏覽器訪問軟件庫頁面,并使用開發者工具分析頁面中編程語言版塊的代碼規律,如圖2-53所示。圖2-53本課件是可編輯的正常PPT課件2.4項目實現步驟4:獲取編程語言數據(3)編輯代碼,使用import語句導入re模塊;根據代碼規律定義一個正則表達式,然后使用findall方法,在頁面源代碼中查找所有與正則表達式匹配的內容,將匹配結果顯示出來。#導入re模塊importre#以讀方式打開index.html文件......#定義正則表達式regex='<aclass="item"href="/project/lang/.+">(.+)</a>'#進行匹配,查找所有編程語言res=re.findall(regex,html)print(res)本課件是可編輯的正常PPT課件2.4項目實現步驟4:獲取編程語言數據(3)運行代碼,成功獲取所有編程語言的名稱,如圖2-54所示圖2-54本課件是可編輯的正常PPT課件2.4項目實現步驟5:獲取新收錄的軟件數據(1)使用開發者工具選中新收錄的Python軟件版塊中的任意一個軟件,分析該軟件的HTML代碼規律,如圖2-55所示。圖2-55本課件是可編輯的正常PPT課件2.4項目實現步驟5:獲取新收錄的軟件數據(2)根據HTML代碼規律定義正則表達式,并使用finditer方法,在頁面源代碼中查找所有新收錄的Python軟件,軟件項目的名稱、URL、描述。本課件是可編輯的正常PPT課件2.4項目實現步驟5:獲取新收錄的軟件數據(2)運行代碼,成功獲取了所有新收錄Python軟件的數據,如圖2-56所示。圖2-56本課件是可編輯的正常PPT課件2.4項目實現步驟6:獲取軟件的詳細數據(1)在for循環中,根據項目名稱讀取本地HTML文件的源代碼。如果HTML文件不存在,則創建HTML文件并使用requests庫的get函數訪問軟件詳情頁,獲取源代碼后保存到HTML文件中。本課件是可編輯的正常PPT課件2.4項目實現步驟6:獲取軟件的詳細數據運行代碼,在本地創建了所有Python軟件的HTML文件,文件中保存了詳情頁的源代碼,如圖2-57所示。圖2-57本課件是可編輯的正常PPT課件2.4項目實現步驟6:獲取軟件的詳細數據(2)訪問某個Python的軟件詳情頁,并使用開發者工具分析軟件詳情頁中基本信息版塊的代碼規律,如圖2-58所示。圖2-58本課件是可編輯的正常PPT課件2.4項目實現步驟6:獲取軟件的詳細數據(3)根據代碼規律定義一個正則表達式,通過compile方法編譯正則表達式生成一個正則表達式對象,并使用findall方法從詳情頁源碼中獲取軟件所有的基本信息。本課件是可編輯的正常PPT課件2.4項目實現步驟6:獲取軟件的詳細數據(3)運行代碼,成功獲取了軟件所有的基本信息,如圖2-59所示。圖2-59本課件是可編輯的正常PPT課件2.4項目實現步驟6:獲取軟件的詳細數據(4)使用for循環遍歷軟件基本信息列表,顯示所有基本信息的名稱和內容,有的內容中含有多余的超鏈接標簽、空白字符和文字,需要使用sub方法替換掉。本課件是可編輯的正常PPT課件2.4項目實現步驟6:獲取軟件的詳細數據(4)運行代碼,顯示了軟件所有的基本信息,如圖2-60所示。本課件是可編輯的正常PPT課件2.4項目實現步驟6:獲取軟件的詳細數據(4)運行代碼,顯示了軟件所有的基本信息,如圖2-60所示。圖2-60本課件是可編輯的正常PPT課件2.5項目總結本項目完成了一個名為“開源社區數據的采集與解析”的項目。項目需求包括通過requests庫訪問軟件庫首頁獲取數據并使用正則表達式與re模塊完成對軟件庫頁面數據的解析,獲取編程語言數據、新收錄的Python軟件數據及軟件的詳細數據。在項目實現過程中,首先使用requests庫訪問了開源中國軟件庫首頁,并查看了狀態碼和響應內容。其次,定義了一個字典類型的變量headers用于保存User-Agent請求頭信息,并將其添加到get函數的參數中,以偽裝成瀏覽器訪問開源中國軟件庫首頁。最后,通過POST方式請求某個軟件項目的發布評論URL,對軟件項目發表評論。 整個項目完成后,成功獲取了所有軟件的基本信息,并實現了對軟件詳情頁源碼的解析。本課件是可編輯的正常PPT課件2.6學習評價育人效果評價表項目:開源社區數據采集與解析——requests庫+re模塊應用

班級:

姓名:

小組:

自我評價總分:

小組評價總分:

教師評價總分:

本課件是可編輯的正常PPT課件2.6學習評價育人效果評價表項目:開源社區數據采集與解析——requests庫+re模塊應用

班級:

姓名:

小組:

自我評價總分:

小組評價總分:

教師評價總分:

本課件是可編輯的正常PPT課件項目3代碼托管平臺數據的采集與解析

———requests庫+lxml庫應用本課件是可編輯的正常PPT課件學習目標掌握requests庫的基本使用方法。掌握使用requests庫設置SSL證書驗證的方法。熟悉XPath的基本語法用法。掌握使用lxml庫解析網頁代碼、查找網頁元素、提取數據的方法。本課件是可編輯的正常PPT課件技能目標能使用requests庫發送HTTP請求并處理響應。能使用requests庫設置SSL證書驗證。能使用XPath解析網頁數據,提取所需的信息。能使用lxml庫解析網頁代碼,查找網頁元素并提取數據。本課件是可編輯的正常PPT課件素養目標培養解決問題的能力和創新能力,能夠獨立分析和解決實際問題。培養自主學習和終身學習的意識和能力,能夠主動學習和掌握新知識與新技能。培養良好的編程習慣和代碼規范,能夠編寫高質量和可維護的代碼。培養大數據采集和分析技能的實踐能力,綜合應用requests庫+lxml庫開發“代碼托管平臺數據的采集與解析”項目。本課件是可編輯的正常PPT課件3.1

項目需求使用XPath與lxml庫,完成對gitee平臺數據的解析。(1)以GET方式訪問gitee開源軟件頁面,獲取頁面的源代碼。(2)使用XPath與lxml庫對源代碼進行解析,獲取已入駐開源組織的數據。(3)使用XPath與lxml庫對源代碼進行解析,獲取推薦項目的數據,如圖3-1所示。圖3-1本課件是可編輯的正常PPT課件3.2

項目分析(1)使用Requests庫爬取頁面源碼。(2)使用開發者工具分析源碼結構。(3)使用lxml庫解析源碼。(4)執行XPath路徑表達式獲取節點。(5)獲取子節點和節點數據。操作流程如圖3-2所示。圖3-2本課件是可編輯的正常PPT課件3.3

必備知識3.3.1XPath路徑表達式1.XPath簡介XPath即XML路徑語言(XMLpathlanguage),它是一種用于在XML文檔中查找節點的語言,起初只支持XML文檔,更新后也支持HTML文檔。XPath提供了非常簡單的路徑表達式,通過路徑表達式可以快速地查找到XML或HTML文檔中的節點。例如,“/blogs/blog/title”就是一個路徑表達式,用于獲取<title>節點。本課件是可編輯的正常PPT課件3.3

必備知識3.3.1XPath路徑表達式1.XPath簡介在查找節點時,XPath會基于XML或HTML的節點樹,沿著節點樹的節點關系定位到目標節點。例如,XPath的路徑表達式“/blogs/blog/title”,查找順序為<blogs>根節點—<blog>子節點—<title>子節點,如圖3-3所示。圖3-3本課件是可編輯的正常PPT課件3.3

必備知識3.3.1XPath路徑表達式2.XPath基本語法1)選取節點選取節點是XPath中最基礎的操作,節點所在的路徑既可以是從根節點開始的,也可以是從任意位置開始的。XPath選取節點最基本的語法如表3-1所示。表3-1本課件是可編輯的正常PPT課件3.3

必備知識3.3.1XPath路徑表達式2.XPath基本語法【示例】使用兩種不同的路徑表達式,從blogs.xml文檔中獲取<author>節點。輸入并執行路徑表達式“/blogs/blog/author”,獲取<author>節點并高亮顯示,如圖3-4和圖3-5所示。圖3-4本課件是可編輯的正常PPT課件3.3

必備知識3.3.1XPath路徑表達式2.XPath基本語法【示例】圖3-5本課件是可編輯的正常PPT課件3.3

必備知識3.3.1XPath路徑表達式2.XPath基本語法【示例】輸入并執行路徑表達式“//author”,獲取<author>節點并高亮顯示,如圖3-6和圖3-7所示。圖3-6本課件是可編輯的正常PPT課件3.3

必備知識3.3.1XPath路徑表達式2.XPath基本語法【示例】輸入并執行路徑表達式“//author”,獲取<author>節點并高亮顯示,如圖3-6和圖3-7所示。圖3-7本課件是可編輯的正常PPT課件3.3

必備知識3.3.1XPath路徑表達式2.XPath基本語法2)謂語謂語是為路徑表達式附加的條件,它會嵌入方括號“

溫馨提示

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

評論

0/150

提交評論