




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
綜合案例——爬取業(yè)務(wù)網(wǎng)站C本章學(xué)習(xí)目標(biāo)分析業(yè)務(wù)網(wǎng)站C的網(wǎng)頁結(jié)構(gòu)和內(nèi)容使用requests庫編寫爬蟲代碼獲取指定的動態(tài)數(shù)據(jù)使用urlencode方法編碼使用pymysql庫實現(xiàn)數(shù)據(jù)的持久化在進入業(yè)務(wù)網(wǎng)站C界面時,在切換“城市”時會出現(xiàn)不同的汽車信息。通過“開發(fā)者工具”的Network選項卡中的XHR可以發(fā)現(xiàn)出現(xiàn)了一個動態(tài)數(shù)據(jù)請求URL,如圖5-1所示。因此,接下來將圍繞該URL進行分析。4.5.1
頁面分析圖5-1動態(tài)數(shù)據(jù)請求URL通過“開發(fā)者工具”的Network欄目中的XHR查看該URL的Preview可以看到返回的動態(tài)數(shù)據(jù),如圖5-2所示。該數(shù)據(jù)是一個字典和列表相互嵌套使用的數(shù)據(jù)集合。因此,要獲得指定的數(shù)據(jù)就必須要對該數(shù)據(jù)集合進行準(zhǔn)確的解析。圖5-2動態(tài)數(shù)據(jù)的結(jié)構(gòu)和內(nèi)容在“Headers”選項卡,可以看見這個AJAX請求的URL地址是./ashx/AjaxIndexHotCarByDsj.ashx?cityid=110100其中cityid參數(shù)為110100,如圖5-3所示圖5-3切換該網(wǎng)站的城市位置如圖5-4所示,打開“network”選項卡發(fā)現(xiàn)XHR中又出現(xiàn)了AJAX條目,并且和上一個城市的AJAX條目有共同之處。參數(shù)cityid發(fā)生了改變,變?yōu)榱?00100。./ashx/AjaxIndexHotCarByDsj.ashx?cityid=500100圖5-4由此可以分析得出,此處的cityid參數(shù)就是指代不同的城市編碼,并根據(jù)不同的cityid值返回不同城市的汽車信息,如圖5-5所示。圖5-3通過使用“開發(fā)者工具”詳細查看并分析了頁面內(nèi)容,現(xiàn)在已經(jīng)獲得了動態(tài)數(shù)據(jù)的結(jié)構(gòu)和內(nèi)容。因此,這里使用requests庫編寫自定義的爬蟲代碼,針對頁面結(jié)構(gòu)通過使用循環(huán)語句獲取到頁面結(jié)構(gòu)中指定的動態(tài)數(shù)據(jù)。4.5.2
獲取動態(tài)數(shù)據(jù)1)導(dǎo)入urlencode和requests,前者表示使用urlencode方法編碼url,后者表示使用requests對象來發(fā)送請求,并返回響應(yīng)的數(shù)據(jù)。fromurllib.parseimporturlencodeimportrequests2)找到需要模擬的AJAX請求的url,并將其復(fù)制給變量original_url。fromurllib.parseimporturlencodeimportrequests3)根據(jù)該AJAX條目的RequestHeaders設(shè)置符合該AJAX的請求基本信息。requests_headers={'Referer':'./beijing/','User-Agent':'Mozilla/5.0(WindowsNT6.1;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)''Chrome/57.0.2987.133Safari/537.36','X-Requested-With':'XMLHttpRequest',}4)自定義一個函數(shù)get_one(cityid),講形參設(shè)置為cityid,表示將接收一個代表城市編碼的參數(shù),并將該參數(shù)傳入字典p中。使用urlencode()方法將字典p的值添加到original_url中,得到完整的URL請求。在try..except..語句中使用requests的get()方法獲得上面的URL,并通過設(shè)定判斷條件,將得到的response響應(yīng)數(shù)據(jù)格式化為JSON。defget_one(cityid):p={'cityid':cityid}complete_url=original_url+urlencode(p)try:response=requests.get(url=complete_url,params=requests_headers)ifresponse.status_code==200:returnresponse.json()exceptrequests.ConnectionErrorase:print('Error',e.args)5)再自定義一個函數(shù)parse(json),將形參設(shè)置為Json,表示這里將接收的數(shù)據(jù)格式為JSON。通過前面的分析得出,這個AJAX返回的數(shù)據(jù)是一個字典列表,因此,通過設(shè)置判斷條件,使用json[0].get(‘name’)將獲得第一個字典集合中的車型名稱。defparse(json):ifjson: item=json[0].get(‘
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年1月寧夏高考適應(yīng)性測試地理試題及答案
- 婦產(chǎn)科產(chǎn)后康復(fù)宣傳片
- 新高考試卷多選題技巧及答案
- 兄弟財產(chǎn)分配協(xié)議書范本
- 房地產(chǎn)物業(yè)維修服務(wù)流程指南
- 兩院互通協(xié)議書范本
- 個人合伙退伙協(xié)議書范本
- 大學(xué)生土木認識試題帶答案
- 房地產(chǎn)公司辦公室文員試題帶答案
- 西藏安全員c證考試試題及答案
- 四川省事業(yè)單位公開招聘工作人員公共科目〈綜合知識〉筆試考試大綱筆試歷年典型考題及考點剖析附帶答案詳解
- 《保障中小企業(yè)款項支付條例(2025新修訂)》知識培訓(xùn)
- 房地產(chǎn)大宗購買合作合同書
- 血液分析儀及其臨床應(yīng)用
- 車衣改色培訓(xùn)
- 2024賽科消防JB-BG-SCi3氣體滅火報警控制器(聯(lián)動型)
- 水輪發(fā)電機組值班員職業(yè)技能鑒定指導(dǎo)書
- (高清版)DB37∕T 3535-2019 固定污染源廢氣監(jiān)測點位設(shè)置技術(shù)規(guī)范
- 2025年云南大理州建投開發(fā)有限公司招聘筆試參考題庫含答案解析
- 浙教版七年級(上)科學(xué)期中試題卷及答案
- 智能硬件產(chǎn)品開發(fā)項目合作框架協(xié)議
評論
0/150
提交評論