




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
項目要求掌握爬蟲基本流程能夠使用requests模塊獲取網頁數(shù)據掌握html源碼分析并提取有用數(shù)據的方法掌握HTTP工作原理能夠使用pymysql模塊進行數(shù)據庫操作HTTP協(xié)議爬取與解析網站數(shù)據添加數(shù)據異常語句網絡爬蟲(又稱為網頁蜘蛛,網絡機器人,在FOAF社區(qū)中間,更經常的稱為網頁追逐者),是一種按照一定的規(guī)則,自動地抓取萬維網信息的程序或者腳本。另外一些不常使用的名字還有螞蟻、自動索引、模擬程序或者蠕蟲。
HTTP協(xié)議(HyperTextTransferProtocol,超文本傳輸協(xié)議):是一種發(fā)布和接收HTML頁面的方法。HTTPS(HypertextTransferProtocoloverSecureSocketLayer)簡單講是HTTP的安全版,HTTP的端口號為80。HTTP協(xié)議HTTP通信由兩部分組成:客戶端請求消息與服務器響應消息。HTTP協(xié)議1.
HTTP的請求與響應瀏覽器發(fā)送HTTP請求的過程:(1)當用戶在瀏覽器的地址欄中輸入一個URL并按回車鍵之后,瀏覽器會向HTTP服務器發(fā)送HTTP請求。HTTP請求主要分為“Get”和“Post”兩種方法。(2)當我們在瀏覽器輸入URL的時候,瀏覽器發(fā)送一個Request請求去獲取
的html文件,服務器把Response文件對象發(fā)送回給瀏覽器。(3)瀏覽器分析Response中的HTML,發(fā)現(xiàn)其中引用了很多其他文件,比如Images文件,CSS文件,JS文件。瀏覽器會自動再次發(fā)送Request去獲取圖片,CSS文件,或者JS文件。(4)當所有的文件都下載成功后,網頁會根據HTML語法結構,完整的顯示出來了。在運行窗口輸入“CMD”進入仿DOS窗口,然后輸入Mysql–uroot–proot命令進入MYSQL數(shù)據庫環(huán)境。其中–u后面是用戶名,-p后面是密碼。HTTP協(xié)議1.
HTTP的請求與響應URL(Uniform/UniversalResourceLocator的縮寫):統(tǒng)一資源定位符,是用于完整地描述Internet上網頁和其他資源的地址的一種標識方法。HTTP協(xié)議2.
URLURL只是標識資源的位置,而HTTP是用來提交和獲取資源??蛻舳税l(fā)送一個HTTP請求到服務器的請求消息,包括格式:請求行、請求頭部、空行、請求數(shù)據等四個部分組成,下圖給出了請求報文的一般格式。HTTP協(xié)議3.客戶端HTTP請求HTTP響應也由四個部分組成,分別是:狀態(tài)行、消息報頭、空行、響應正文。響應狀態(tài)代碼有三位數(shù)字組成,第一個數(shù)字定義了響應的類別,且有五種可能取值。常見狀態(tài)碼:100~199:表示服務器成功接收部分請求,要求客戶端繼續(xù)提交其余請求才能完成整個處理過程。200~299:表示服務器成功接收請求并已完成整個處理過程。常用200(OK請求成功)。300~399:為完成請求,客戶需進一步細化請求。例如:請求的資源已經移動一個新地址、常用302(所請求的頁面已經臨時轉移至新的url)、307和304(使用緩存資源)。400~499:客戶端的請求有錯誤,常用404(服務器無法找到被請求的頁面)、403(服務器拒絕訪問,權限不夠)。500~599:服務器端出現(xiàn)錯誤,常用500(請求未完成。服務器遇到不可預知的情況)。HTTP協(xié)議4.服務端HTTP響應requests模塊用來獲取目標網頁文本,BeautifulSoup模塊用來獲取html中特定標簽內容,fake_useragent.UserAgent類提供random方法可以隨機生成合法的User-Agent,作為請求頭一部分請求網頁,以避免網頁請求失敗。myMysql是當前目錄的一個文件,其中定義一個類。用來二次封裝pymysql開放的操作mysql數(shù)據庫的接口,實現(xiàn)對數(shù)據庫的讀寫。HTTP協(xié)議5.項目依賴包爬取與解析網站數(shù)據1.爬取頁面定義函數(shù)request_douban(),目標url作為參數(shù),headers作為請求頭,將自動生成的user_agent添加到headers作為反爬機制。調用requests類get方法獲取請求url返回的響應內容,通過response.status_code獲取響應代碼,若為200,表示成功響應,通過response.status_code獲取響應的html正文,作為函數(shù)返回值。爬取與解析網站數(shù)據2.目標網頁分析
首先打開我們的目標鏈接/top250可以看到如圖所示的網頁爬取與解析網站數(shù)據2.目標網頁分析每一頁顯示了25條數(shù)據,當我們點擊下一頁的時候鏈接請求參數(shù)變了,/top250?start=25&filter=,。我們可以明確下一頁就是從第25條數(shù)據開始加載的。所以,我們可以使用這個start=25來做變量,實現(xiàn)翻頁獲取信息。接下來我們來看下我們要的主要信息:電影名稱、電影排名、電影評分、電影作者、電影簡介。我們可以使用BeautifulSoup超簡單獲取對應我們想要獲取的電影信息。主要思路,請求豆瓣的鏈接獲取網頁源代碼,然后使用BeatifulSoup拿到我們要的內容,最后就把數(shù)據存儲到MySQL中。爬取與解析網站數(shù)據3.BeautifulSoup解析html提取目標數(shù)據
BeautifulSoup是一個能從HTML或XML文件中提取數(shù)據的Python庫。它能通過自己定義的解析器來提供導航、搜索,甚至改變解析樹。它的出現(xiàn),會大大節(jié)省開發(fā)者的時間。定義函數(shù)getResult(),BeautifulSoup對象作為參數(shù),首先獲取所有類選擇器為“grid_view”的li標簽,每個電影對應的Tag對象作為列表的元素保存到html變量,定義空列表result用來存儲希望得到的電影信息,包括排名、電影名、評分、簡介等。遍歷html變量,使用BeautifulSoup相關方法,結合html分析獲取前述電影信息,即item_index,item_name,item_score,item_intr,將四個包含電影信息的字符串存儲在元組item中,最后將item插入列表result暫時存儲,result最終作為函數(shù)返回值。爬取與解析網站數(shù)據4.獲取全部頁面數(shù)據并存儲到數(shù)據庫
定義onePage()函數(shù),整形page作為參數(shù),當變量page=0,url代表首頁,包含top25電影信息,當page=1,url代表排名第26到50的電影信息頁面,以此類推。調用request_douban(url)獲取對應頁面html正文,然后html作為參數(shù),實例化BeautifulSoup類生成對象soup,調用getResult(soup)函數(shù),將一個頁面中包含的25個電影分別對應的四個電影信息作為返回值保存到列表result。循環(huán)10次,i取0到9,10個整數(shù),作為變量傳遞到onePage()函數(shù)。最終空列表result存儲了10個頁面共250個電影的電影信息。爬取與解析網站數(shù)據4.獲取全部頁面數(shù)據并存儲到數(shù)據庫定義saveToMysql()函數(shù),列表result作為參數(shù),該函數(shù)實現(xiàn)了250條電影信息保存到數(shù)據表douban.movie中,DBHelper()是在myMysql文件中自定義的數(shù)據庫操作類,pyMySQL開放接口execute實現(xiàn)sql語句,開放executemany接口實現(xiàn)多條數(shù)據插入數(shù)據表。最終項目主函數(shù),調用allPage()函數(shù),返回所有電影信息暫存到result列表,調用saveToMysql()函數(shù)實現(xiàn)電影信息存儲到數(shù)據庫。項目總結本項目運用了Http相關理論知識,結合requests、BeautifulSoup、fake_useragent
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貴州重點項目-年產2500萬平方米中高壓化成箔項目可行性研究報告
- 2025年中國齒科烤瓷爐行業(yè)市場運營現(xiàn)狀及投資規(guī)劃研究建議報告
- 二溴海因消毒片行業(yè)行業(yè)發(fā)展趨勢及投資戰(zhàn)略研究分析報告
- “十三五”重點項目-方便食品加工項目節(jié)能評估報告(節(jié)能專)
- 中國深圳服裝行業(yè)市場全景評估及發(fā)展趨勢研究預測報告
- 編制循環(huán)泵項目可行性研究報告編制說明
- 中國網上零售市場全景評估及發(fā)展趨勢研究預測報告
- 2025年電磁制動器項目可行性研究報告
- 2022-2027年中國創(chuàng)面修復藥物市場競爭態(tài)勢及行業(yè)投資潛力預測報告
- 租借擺攤工具合同范本
- 體育賽事直播服務投標管理辦法
- 高三沖刺畢業(yè)家長會課件2024-2025學年
- 【申報書】高職院校高水平專業(yè)群建設項目申報書
- 《美特斯邦威公司財務現(xiàn)狀及其盈利能力問題探析(10000字論文)》
- 餐飲服務電子教案 學習任務4 擺臺技能(4)-西餐宴會餐臺擺臺
- 河南省公安基礎知識真題匯編1
- 2024年江蘇常州市教育基本建設與裝備管理中心招聘3人歷年高頻難、易錯點500題模擬試題附帶答案詳解
- 《護理交接班規(guī)范》課件
- 2022年新高考I卷讀后續(xù)寫David's run公開課課件-高三英語一輪復習
- 糧油食材配送投標方案(大米食用油食材配送服務投標方案)(技術方案)
- 祭掃烈士實施方案
評論
0/150
提交評論