




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
綜合案例——爬取業務網站C本章學習目標分析業務網站C的網頁結構和內容使用requests庫編寫爬蟲代碼獲取指定的動態數據使用urlencode方法編碼使用pymysql庫實現數據的持久化在進入業務網站C界面時,在切換“城市”時會出現不同的汽車信息。通過“開發者工具”的Network選項卡中的XHR可以發現出現了一個動態數據請求URL,如圖5-1所示。因此,接下來將圍繞該URL進行分析。4.5.1
頁面分析圖5-1動態數據請求URL通過“開發者工具”的Network欄目中的XHR查看該URL的Preview可以看到返回的動態數據,如圖5-2所示。該數據是一個字典和列表相互嵌套使用的數據集合。因此,要獲得指定的數據就必須要對該數據集合進行準確的解析。圖5-2動態數據的結構和內容在“Headers”選項卡,可以看見這個AJAX請求的URL地址是./ashx/AjaxIndexHotCarByDsj.ashx?cityid=110100其中cityid參數為110100,如圖5-3所示圖5-3切換該網站的城市位置如圖5-4所示,打開“network”選項卡發現XHR中又出現了AJAX條目,并且和上一個城市的AJAX條目有共同之處。參數cityid發生了改變,變為了500100。./ashx/AjaxIndexHotCarByDsj.ashx?cityid=500100圖5-4由此可以分析得出,此處的cityid參數就是指代不同的城市編碼,并根據不同的cityid值返回不同城市的汽車信息,如圖5-5所示。圖5-3通過使用“開發者工具”詳細查看并分析了頁面內容,現在已經獲得了動態數據的結構和內容。因此,這里使用requests庫編寫自定義的爬蟲代碼,針對頁面結構通過使用循環語句獲取到頁面結構中指定的動態數據。4.5.2
獲取動態數據1)導入urlencode和requests,前者表示使用urlencode方法編碼url,后者表示使用requests對象來發送請求,并返回響應的數據。fromurllib.parseimporturlencodeimportrequests2)找到需要模擬的AJAX請求的url,并將其復制給變量original_url。fromurllib.parseimporturlencodeimportrequests3)根據該AJAX條目的RequestHeaders設置符合該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)自定義一個函數get_one(cityid),講形參設置為cityid,表示將接收一個代表城市編碼的參數,并將該參數傳入字典p中。使用urlencode()方法將字典p的值添加到original_url中,得到完整的URL請求。在try..except..語句中使用requests的get()方法獲得上面的URL,并通過設定判斷條件,將得到的response響應數據格式化為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)再自定義一個函數parse(json),將形參設置為Json,表示這里將接收的數據格式為JSON。通過前面的分析得出,這個AJAX返回的數據是一個字典列表,因此,通過設置判斷條件,使用json[0].get(‘name’)將獲得第一個字典集合中的車型名稱。defparse(json):ifjson: item=json[0].get(‘
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 自助餐外賣管理制度
- 營企業公司管理制度
- 落實保護區管理制度
- 蓄電池行政管理制度
- 街道停車費管理制度
- 設備gps管理制度
- 設備開機率管理制度
- 設備部人員管理制度
- 設計部文件管理制度
- 詢問室專人管理制度
- 湖北省五市州2023-2024學年高一下學期7月期末地理試題(原卷版)
- 2024年迪慶道路旅客運輸知識考試題庫
- 修腳師培訓手冊
- 2025屆高考政治一輪復習:統編版選擇性必修3《邏輯與思維》重點知識點提綱
- 凝中國心鑄中華魂鑄牢中華民族共同體意識-小學民族團結愛國主題班會課件
- 上海市市轄區(2024年-2025年小學四年級語文)統編版期末考試((上下)學期)試卷及答案
- 小超市食品安全管理制度
- β內酰胺類抗菌藥物皮膚試驗指導原則2024課件
- 全過程工程咨詢管理服務方案投標方案(技術方案)
- 皮膚科進修后匯報
- 6.2+民族區域自治制度+課件高中政治統編版必修三政治與法治+
評論
0/150
提交評論