(中職)Python編程基礎(chǔ)與應(yīng)用電子課件網(wǎng)絡(luò)爬蟲庫的應(yīng)用_第1頁
(中職)Python編程基礎(chǔ)與應(yīng)用電子課件網(wǎng)絡(luò)爬蟲庫的應(yīng)用_第2頁
(中職)Python編程基礎(chǔ)與應(yīng)用電子課件網(wǎng)絡(luò)爬蟲庫的應(yīng)用_第3頁
(中職)Python編程基礎(chǔ)與應(yīng)用電子課件網(wǎng)絡(luò)爬蟲庫的應(yīng)用_第4頁
(中職)Python編程基礎(chǔ)與應(yīng)用電子課件網(wǎng)絡(luò)爬蟲庫的應(yīng)用_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

正版課件

內(nèi)容可修改(中職)Python編程基礎(chǔ)與應(yīng)用電子課件網(wǎng)絡(luò)爬蟲庫的應(yīng)用

網(wǎng)絡(luò)爬蟲庫的應(yīng)用主講::《Python編程基礎(chǔ)與應(yīng)用》配套課件+contents目錄requests的安裝和簡介Beautifulsoup4的安裝和簡介SQLite數(shù)據(jù)庫的使用案例:新聞網(wǎng)頁爬蟲項目requests的安裝和簡介01requests的簡介requests庫是一個常用的用于http請求的模塊,它使用python語言編寫,可以方便地對網(wǎng)頁進行爬取,是學(xué)習(xí)python爬蟲的較好的http請求模塊。requests庫支持非常豐富的鏈接訪問功能,包括域名和URL的獲取、HTTP長連接和連接緩存、HTTP會話和cookie保持、瀏覽器的SSL驗證、基本的制作摘要認證、有效的鍵值對cookie記錄、自動解壓縮、自動內(nèi)容解碼、文件分塊上傳、HTTP和HTTPS代理功能、連接超時處理、流數(shù)據(jù)下載等。Requests支持Python2.6—2.7以及3.3—3.7,而且能在PyPy下運行。requests的安裝有關(guān)它的更多介紹請訪問英文網(wǎng)站https://2./en/latest/或者中文網(wǎng)站https://2./zh_CN/latest/index.html。它的安裝方法很簡單,可以直接使用PIP進行安裝:

pipinstallrequestsrequests的常用函數(shù)response對象的一些屬性范例11-4requests的基本方法以下范例中使用簡單的幾行代碼就可以實現(xiàn)抓取百度首頁的信息。范例11-4requests的基本方法其中response.text和response.content可以獲取網(wǎng)頁源碼,讀者可以自己嘗試一下它的結(jié)果如下范例11-5使用requests下載一個網(wǎng)頁到本地應(yīng)用requests庫可以快速地所一個URL網(wǎng)頁的源碼信息下載下來,并保存到本地。以下范例把百度新聞首頁抓取下來并保存到文本文件newshtml.txt中。范例11-5使用requests下載一個網(wǎng)頁到本地結(jié)果如下:網(wǎng)頁抓取結(jié)束,并寫入文件newshtml.txt成功提示:使用requests.get(url)可以抓取網(wǎng)頁,也可以加上超時要求,如r=requests.get(url,timeout=30)表示請求超時時間為30秒。在文件夾中找到newshtml.txt并打開它,閱讀角-爬蟲與職業(yè)道德?lián)f互聯(lián)網(wǎng)上50%以上的流量都是爬蟲創(chuàng)造的,也許你看到很多熱門數(shù)據(jù)都是爬蟲所創(chuàng)造的,所以可以說無爬蟲就無互聯(lián)網(wǎng)的繁榮。曾有報道程序員因?qū)懪老x而被刑偵的事件。爬蟲與職業(yè)道德我家頒布《中華人民共和國網(wǎng)絡(luò)安全法》之后,對網(wǎng)絡(luò)安全有了更高的要求。隨著中國經(jīng)濟的不斷往前走,知識產(chǎn)權(quán)問題會越來越重視,非法爬蟲是現(xiàn)在一個重要的打擊部分。技術(shù)是無罪的,技術(shù)本身確實是沒有對錯的,但使用技術(shù)的人是有對錯的。公司或者程序員如果明知使用其技術(shù)是非法的,那么他們就需要為之付出代價。爬蟲與職業(yè)道德編寫爬蟲程序爬取數(shù)據(jù)之前,為了避免某些有版權(quán)的數(shù)據(jù)后期帶來的諸多法律問題,可以通過查看網(wǎng)站的robots.txt文件來避免爬取某些網(wǎng)頁。爬蟲與職業(yè)道德robots協(xié)議,告知爬蟲等搜索引擎那些頁面可以抓取,哪些不能。它只是一個通行的道德規(guī)范,沒有強制性規(guī)定,完全由個人意愿遵守。作為一名有道德的技術(shù)人員,遵守robots協(xié)議,有助于建立更好的互聯(lián)網(wǎng)環(huán)境。網(wǎng)站的robots文件地址通常為網(wǎng)頁主頁后加robots.txt,如/robots.txt。Beautifulsoup4的安裝和簡介02Beautifulsoup4的簡介HTML文檔本身是結(jié)構(gòu)化的文本,有一定的規(guī)則,通過它的結(jié)構(gòu)可以簡化信息提取。于是,就有了lxml、pyquery、BeautifulSoup等網(wǎng)頁信息提取庫。一般我們會用這些庫來提取網(wǎng)頁信息。其中,lxml有很高的解析效率,支持xPath語法(一種可以在HTML中查找信息的規(guī)則語法);pyquery得名于jQuery(知名的前端js庫),可以用類似jQuery的語法解析網(wǎng)頁。BeautifulSoup是一個可以從HTML或XML文件中提取數(shù)據(jù)的Python庫.它能夠通過你喜歡的轉(zhuǎn)換器實現(xiàn)慣用的文檔導(dǎo)航,查找,修改文檔的方式。Beautifulsoup4的安裝BeautifulSoup會幫你節(jié)省很多的工作時間。它的安裝方法很簡單,可以直接使用PIP進行安裝:

pipinstallbeautifulsoup4要注意,包名是beautifulsoup4。如果不加上4,會是老版本,它是為了兼容性而存在,目前已不推薦使用。有關(guān)它的更多介紹請訪問網(wǎng)站https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/或者/software/BeautifulSoup/。安裝解析器安裝解析器是beautifulsoup4應(yīng)用中很重要的一部分。beautifulsoup4支持Python標準庫中的HTML解析器,還支持一些第三方的解析器,比如lxml和html5lib。推薦使用lxml作為解析器,因為它的效率更高。它的安裝方法很簡單,可以直接使用PIP進行安裝:

pipinstalllxmlpipinstallhtml5lib范例11-6使用beautifulsoup4進行簡單的網(wǎng)頁解析有一段百度新聞首頁的源代碼,通過beautifulsoup4解析,把一些信息提取出來。因為HTML源代碼比較復(fù)雜,這里使用了三引號把源代碼引用。調(diào)用了lxml解析器。范例11-6使用beautifulsoup4進行簡單的網(wǎng)頁解析代碼范例11-6使用beautifulsoup4進行簡單的網(wǎng)頁解析它的結(jié)果如下范例11-7使用beautifulsoup4的select()抓取導(dǎo)航有一段百度新聞首頁的源代碼,通過beautifulsoup4的select()方法把網(wǎng)站的導(dǎo)航URL和導(dǎo)航文字解析出來。在BeautifulSoup對象的.select()方法中傳入字符串參數(shù),即可使用CSS選擇器的語法找到tag。范例11-7使用beautifulsoup4的select()抓取導(dǎo)航代碼范例11-7使用beautifulsoup4的select()抓取導(dǎo)航代碼范例11-7使用beautifulsoup4的select()抓取導(dǎo)航通過觀察可以發(fā)現(xiàn)整個導(dǎo)航代碼都在標簽id="channel-all"的div中,這一個div下面出現(xiàn)了a標簽,它里面有導(dǎo)航的URL和導(dǎo)航的文字。通過遍歷循環(huán)soup.select('div#channel-alla')的方法可以找到a標簽。找到a標簽后,再通過get()指定href屬性可以獲取它的URL,再通過string方法可以直接獲取它的內(nèi)容,即a標簽中的導(dǎo)航文字。再細心觀察,整個導(dǎo)航代碼也在<ulclass="clearfix">標簽里面,所以可以再縮小范圍,使用soup.select('ul.clearfixa')來獲取導(dǎo)航內(nèi)容。范例11-7使用beautifulsoup4的select()抓取導(dǎo)航結(jié)果如下SQLite數(shù)據(jù)庫的使用03SQLite的簡介SQLite是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。SQLite的官方網(wǎng)站為/index.html。SQLite可使用sqlite3模塊與Python進行集成。它提供了一個與PEP249描述的DB-API2.0規(guī)范兼容的SQL接口。您不需要單獨安裝該模塊,因為Python2.5.x以上版本默認自帶了該模塊。它的一些常用的常量、函數(shù)和對象如下:1) Sqlite3.version#常量,版本號。2) sqlite3.Connect(database)#函數(shù),連接數(shù)據(jù)庫,返回Connect對象。3) sqlite3.Connect#數(shù)據(jù)庫連接對象4) sqlite3.Cursor#游標對象5) sqlite3.Row#行對象sqlite3的主要API及描述sqlite3的主要API及描述范例11-8使用sqlite3創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表創(chuàng)建數(shù)據(jù)庫名稱為“Student.db”,存放路徑為“D:\pythonBook\pythonProject10\SQLite3DB”。在數(shù)據(jù)庫“Student.db”中創(chuàng)建數(shù)據(jù)表為“tbuser”,它的表結(jié)構(gòu)如下所示范例11-8使用sqlite3創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表它的代碼范例11-8使用sqlite3創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表它的結(jié)果范例11-9sqlite3進行增、刪、改操作數(shù)據(jù)庫中的數(shù)據(jù)需要在不同的程序中進行調(diào)用,最為常見的操作是“增、刪、改、查”四種操作。在數(shù)據(jù)庫中進行數(shù)據(jù)的增加、刪除和修改操作,它的一般步驟如下:1)建立數(shù)據(jù)庫的連接。2)創(chuàng)建游標對象。3)根據(jù)SQL的Insert,Delete和Update語句,使用Connection.execute(sql)執(zhí)行數(shù)據(jù)的增加、刪除和修改操作,并根據(jù)返回的值判斷操作結(jié)果。4)提交操作。5)關(guān)閉數(shù)據(jù)庫連接對象。把以下數(shù)據(jù)插入到數(shù)據(jù)表“tbuser”中,并對其中的一些數(shù)據(jù)進行修改和刪除操作。范例11-9sqlite3進行增、刪、改操作數(shù)據(jù)如下范例11-9sqlite3進行增、刪、改操作代碼如下范例11-9sqlite3進行增、刪、改操作代碼如下范例11-9sqlite3進行增、刪、改操作代碼如下范例11-9sqlite3進行增、刪、改操作結(jié)果如下范例11-10sqlite3進行數(shù)據(jù)的查詢操作在數(shù)據(jù)庫中進行數(shù)據(jù)的查詢操作,它的一般步驟也與上面提到的“增、刪、改”操作步驟類似,其中第三步改成Select查詢語句即可,第四步則通常使用循環(huán)讀取數(shù)據(jù)內(nèi)容。范例11-10sqlite3進行數(shù)據(jù)的查詢操作它的結(jié)果范例11-10sqlite3進行數(shù)據(jù)的查詢操作對查詢?nèi)繑?shù)據(jù)的操作,也可以通過指定列表的索引來匹配具體的數(shù)據(jù),比如one[0]、one[1]等,代碼如下:案例:新聞網(wǎng)頁爬蟲項目04案例描述在十九屆中共中央政治局第二次集體學(xué)習(xí)時,習(xí)總書記的重要講話中指出“大數(shù)據(jù)是信息化發(fā)展的新階段”。大數(shù)據(jù)與網(wǎng)絡(luò)爬蟲技術(shù)密不可分。網(wǎng)絡(luò)爬蟲(又被稱為網(wǎng)頁蜘蛛,網(wǎng)絡(luò)機器人),是一種按照一定的規(guī)則,自動地抓取萬維網(wǎng)信息的程序或者腳本。網(wǎng)絡(luò)爬蟲系統(tǒng)正是通過網(wǎng)頁中的超鏈接信息不斷獲得網(wǎng)絡(luò)上的其他網(wǎng)頁的。百度新聞()由百度爬蟲機器人選取每5分鐘自動更新,它的搜索源于互聯(lián)網(wǎng)新聞網(wǎng)站和頻道,系統(tǒng)自動分類排序。某公司做一個新聞采集項目時,希望研究百度新聞中的新聞信息,用Python寫一個網(wǎng)頁爬蟲把百度新聞的新聞抓取下來,并存入數(shù)據(jù)庫中,以作實驗學(xué)習(xí)用。案例分析本項目可以用Python語言requests庫抓取網(wǎng)頁,使用Beautifulsoup4解析網(wǎng)頁,提取有用的信息后,再通過SQLite作為數(shù)據(jù)庫存儲起來。它的主要實施步驟為:1)分析網(wǎng)頁HTML代碼,選擇抓取的入口。2)創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表。3)編寫爬蟲解析函數(shù)和數(shù)據(jù)保存函數(shù)等自定義函數(shù),以供程序調(diào)用。4)編寫程序入口,調(diào)用自定義函數(shù)進行網(wǎng)頁的抓取。5)編寫測試代碼,測試數(shù)據(jù)表是否已經(jīng)正確保存抓取的網(wǎng)頁數(shù)據(jù)。案例代碼略。運行結(jié)果測試代碼為了驗證數(shù)據(jù)表是否已經(jīng)成功保存抓取的網(wǎng)頁數(shù)據(jù),新建一個文件

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論