版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
網(wǎng)絡爬蟲項目實戰(zhàn)項目二:特殊網(wǎng)頁數(shù)據(jù)獲取主講人:xxx231任務2.2古詩詞網(wǎng)數(shù)據(jù)爬取
任務2.1數(shù)睿思網(wǎng)模擬登錄任務2.3微信網(wǎng)頁代理爬蟲文章信息目錄任務2.1數(shù)睿思網(wǎng)模擬登錄任務描述表單登錄是指通過編寫程序模擬瀏覽器向服務器端發(fā)送POST請求,提交登錄需要的表單數(shù)據(jù),獲得服務器端認可,返回需要的結果,從而實現(xiàn)模擬登錄。使用表單登錄的方法模擬登錄數(shù)睿思網(wǎng)站。網(wǎng)址::444/oauth/authorize?response_type=code&redirect_uri=https%3A%2F%2F%3A10010%2Fcallback&client_id=5f9285dc-c645-4d5d-9eb8-b18a024d15f3掌握使用Requests庫實現(xiàn)請求掌握使用Chrome開發(fā)者工具查找模擬登錄需要的相關信息掌握表單登錄的流程任務目標1.1查找提交入口提交入口指的是登錄網(wǎng)頁(類似圖2-1)的表單數(shù)據(jù)(如用戶名、密碼等)的真實提交地址,它不一定是登錄網(wǎng)頁的地址,出于安全需要它可能會被設計成其他地址。找到表單數(shù)據(jù)的提交入口是表單登錄的前提。提交入口的請求方法大多數(shù)情況下是POST,因為用戶的登錄數(shù)據(jù)是敏感數(shù)據(jù),使用POST請求方法能夠避免用戶提交的登錄數(shù)據(jù)在瀏覽器端被泄露,從而保障數(shù)據(jù)的安全性。因此,請求方法是否為POST可以作為判斷提交入口的依據(jù)。(1)打開網(wǎng)站,單擊右上角的“登錄”按鈕,進入登錄頁面,如圖2-1所示。任務實施圖2-1登錄頁面1.1查找提交入口(2)打開Chrome開發(fā)者工具后打開網(wǎng)絡面板,勾選“Preservelog”(保持日志)復選框,按“F5”鍵刷新網(wǎng)頁顯示各項資源,如圖2-2所示。任務實施圖2-2顯示各項資源1.1查找提交入口(3)在登錄頁面輸入賬號、密碼,單擊“登錄”按鈕,提交表單數(shù)據(jù),此時Chrome開發(fā)者工具會加載新的資源。(4)觀察Chrome開發(fā)者工具左側的資源,找到“authorize”資源并單擊,觀察右側的“Headers”標簽下的“General”信息,如圖2-3所示,可發(fā)現(xiàn)“RequestMethod”的信息為“POST”,即請求方法為POST,可以判斷“RequestURL”的信息即為提交入口。任務實施圖2-3Chrome開發(fā)者工具獲取到的提交入口1.2查找并獲取需要提交的表單數(shù)據(jù)在1.1中,使用Chrome開發(fā)者工具可獲取提交入口,在“Headers”標簽中,“FormData”信息為服務器端接收到的表單數(shù)據(jù),如圖2-4所示,其中,“username”表示賬寫,password”表示密碼,“redirect_urli”表示跳轉網(wǎng)址。redirect_url由系統(tǒng)自動生成并提交,它在登錄網(wǎng)頁時無須輸入。任務實施圖2-4Chrome開發(fā)者工具獲取到的表單數(shù)據(jù)1.3使用POST請求方法登錄POST請求方法能夠保障用戶端提交數(shù)據(jù)的安全性,因此它被一般需要登錄的網(wǎng)站采用。Requests庫的post函數(shù)能夠以POST請求方法向服務器端發(fā)送請求,它返回一個Response<Response>對象。post函數(shù)的基本語法格式如下:requests.post(url,data=None,json=None,**kwargs)任務實施參數(shù)說明url接收string。表示提交入口。無默認值data接收dict。表示需要提交的表單數(shù)據(jù)。無默認值使用表單登錄的方法模擬登錄“筆趣閣”網(wǎng)站。網(wǎng)址為“/login.html”,登錄頁如下圖所示。實踐訓練圖2-6筆趣閣任務2.2古詩詞網(wǎng)數(shù)據(jù)爬取任務描述在機器視覺領域,字符識別扮演著重要的角色,它可以利用計算機自動識別字符。對于圖像中的字符,人類能夠輕松地閱讀,然而機器閱讀卻非常困難。驗證碼技術就是基于這種人類能正常閱讀而機器無法讀取的圖片。當網(wǎng)絡爬蟲采集數(shù)據(jù)時,一旦遇到驗證碼就無法提取里面的字符信息。在項目二的任務1中,我們講了如何通過表單來實現(xiàn)模擬登錄,登錄需要用戶名、密碼,但往往很多網(wǎng)頁相對比較復雜,登錄還需要輸入驗證碼,本任務我們主要講驗證碼的識別,古詩詞網(wǎng)登錄頁如圖2-7所示。網(wǎng)址:/user/login.aspx?from=/user/collect.aspx會安裝Tesseract工具,會配置環(huán)境熟悉PIL和tesseract庫能夠利用pytesseract識別簡單的圖形驗證碼任務目標2.1Tesseract引擎的下載和安裝Tesseract是一個開源的OCR庫,是目前公認的最優(yōu)秀、最精確的開源OCR系統(tǒng),具有準確度高、靈活性高等特點。它不僅可以通過訓練識別出任何字體(只要字體的風格保持不變即可),而且還可以識別處任何Unicode字符。Tesseract支持60種以上的語言,它提供了一個引擎和命令行工具。要想在Windows系統(tǒng)下使用Tesseract,需要先安裝Tesseract-OCR引擎,可以從網(wǎng)址/UB-Mannheim/tesseract/wiki進行下載,如圖2-8所示。任務實施圖2-8Tesseract-OC下載頁2.1Tesseract引擎的下載和安裝下載完成后,雙擊安裝文件,按照默認設置進行安裝。默認情況下,安裝文件會為其配置系統(tǒng)環(huán)境變量,以指向安裝目錄。這樣,就可以在任意目錄下使用tesseract命令運行。如果沒有配置環(huán)境變量,可以手動進行設置,默認安裝目錄為:C:\ProgramFiles(x86)\Tesseract-OCR打開命令行窗口,輸入tesseract命令進行驗證。如果安裝成功,則會輸出如圖2-9所示的信息。任務實施2-9安裝Tesseract-OCR成功2.2第三方庫的安裝Tesseract是一個命令行工,安裝后只能通過tesseract命令在Python的外部運行,而不能通過import語句引入使用,為了解決上述問題,Python提供了支持Tesseract-OCR引擎的Python版本的庫pytesseract。安裝pytesseract需要遵守如下要求:Python的版本必須是
python2.5+或
python3.x安裝
Python的圖像處理庫PIL(或Pillow)安裝谷歌的OCR識別引擎
Tesseract-OCR任務實施2.3驗證碼識別1.獲取生成驗證碼的圖片地址(1)打開網(wǎng)站,進入登錄網(wǎng)頁,打開Chrome開發(fā)者工具后打開網(wǎng)絡面板,按“F5”鍵刷新網(wǎng)頁。(2)觀察Chrome開發(fā)者工具左側的資源,找到“RandCode.ashx”資源并單擊,觀察右側的Preview標簽,若顯示驗證碼圖片如左圖所示,則“RandCode.ashx”資源的RequestURL信息為驗證碼圖片的地址,如圖2-10所示。任務實施圖2-11Chrome開發(fā)者工具獲取到的驗證碼圖片2.3驗證碼識別任務實施圖2-12驗證碼圖片對應的驗證碼地址2.3驗證碼識別任務實施2.將驗證碼圖片下載到本地獲取驗證碼圖片地址后,下一步對圖片地址發(fā)送請求,將圖片下載到本地。3.驗證碼識別最后識別驗證碼。使用PIL庫的Image模塊可以自動調(diào)用本機的圖片查看程序打開驗證碼圖片,效率更高。Image模塊自動打開圖片分為兩步:使用open方法創(chuàng)建一個Image對象;使用show方法顯示圖片。open方法和show方法的基本語法格式如下。Image.open(fp,mode='r')Image.show(title=None,command=None)方法參數(shù)名稱說明openfp接收string。表示圖片路徑地址。無默認值showtitle接收string。表示圖片標題。一般默認為None2.4完成登錄任務實施在任務1中,我們詳細介紹了模擬登錄,古詩詞網(wǎng)登錄除了需要email、pwd外,還需要__VIEWSTATE、__VIEWSTATEGENERATOR、from、code、denglu等字段,如圖2-15所示。圖2-15Chrome開發(fā)者工具獲取到的表單數(shù)據(jù)通過人工識別驗證碼登錄“千千小說網(wǎng)”網(wǎng)站。網(wǎng)址為“https://www.77xsw.cc/login.php”,登錄頁如下圖所示。實踐訓練圖2-18千千小說網(wǎng)登錄頁任務2.3微信網(wǎng)頁代理爬蟲文章信息任務描述搜狗(sogo)網(wǎng)站(/)提供了“微信”模塊,即sogo爬取了微信文章信息和公眾號的信息,如圖所示。但是sogo具有很多反爬蟲的措施,會檢測到訪問IP異常,進而封鎖IP。本任務主要講解利用代理來爬取sogo“微信”模塊中關于“程序員”的微信文章信息,包括:文章名字、文章內(nèi)容,并將爬取的信息保存到MongoDB中。圖2-19搜狗微信模塊使用Flask+Redis維護代理池抓取索引頁內(nèi)容設置代理分析詳情頁內(nèi)容保存數(shù)據(jù)信息至mongoDB任務目標1
網(wǎng)頁結構分析打開sogo網(wǎng)站的微信網(wǎng)頁(/),在搜索輸入框中輸入關鍵詞“程序員”,點擊“搜文章”按鈕,進入該項目要爬取的網(wǎng)頁,如圖所示。其中我們主要爬取的數(shù)據(jù)信息包括:文章名字、文章內(nèi)容。任務實施圖
微信網(wǎng)頁信息2使用Flask+Redis維護代理池當在爬取微信文章時,可能出現(xiàn)驗證碼識別頁面,此時是IP被封,網(wǎng)頁請求由200變成302的錯誤狀態(tài),這種情況可以使用代理偽裝IP,完成爬蟲請求。但是互聯(lián)網(wǎng)上公開的大量免費代理,有好有壞,需要對大量代理進行維護,剔除沒有用的代理。在對微信文章列表爬取時,我們可能會需要非常多的IP,在此我們需要維護一個代理池,代理池是通過爬取各個免費的代理資源中的代理IP信息,存儲到本地,然后進行驗證是否可用,并維護可用代理IP列表,最后在需要使用的時候取出代理IP,任務實施圖代理內(nèi)容展示3抓取索引頁內(nèi)容創(chuàng)建項目,命名為Weixin_Spider,然后創(chuàng)建一個python文件fan_spider.py。在本節(jié)中完成索引頁的爬取,利用requests請求
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高性能計算領域的智能計算研究中心主任的招聘題庫
- 中國電信安全服務經(jīng)理崗位知識考試題庫含答案
- 2025山東濟南政金投資有限公司招聘(10人)模擬筆試試題及答案解析
- 系統(tǒng)架構師面試全解析與問題集
- 2025江西贛州市瑞金市總醫(yī)院招聘工作人員5人備考考試試題及答案解析
- 2025年綜評筆試試題及答案
- 2025新疆雙河能源發(fā)展(集團)有限公司中層管理崗位市場化選聘24人備考考試試題及答案解析
- 2025年鶴崗市興山區(qū)公開招聘公益性崗位人員20人備考筆試試題及答案解析
- 中國電信網(wǎng)絡工程師面試題庫及答案解析
- 財務經(jīng)理面試高頻問題及答案
- 籃球突破分球訓練課件
- 2025年領導干部任前廉政知識測試練習題(含答案)
- 籃球原地投籃課件
- 2025年低空經(jīng)濟產(chǎn)業(yè)無人機飛手職業(yè)發(fā)展路徑分析報告
- 【287】醫(yī)務人員互聯(lián)網(wǎng)健康科普負面行為清單(試行)
- 電梯加裝梯控施工方案
- scr脫硝技術協(xié)議書
- 2025書記員考試及答案
- 2025年行政務服務中心綜合窗口辦事員考試題庫及答案
- 機動車檢測站安全管理手冊
- 2025年新能源汽車充電樁盈利能力研究報告
評論
0/150
提交評論