# 如何避免爬蟲爬取Lazy Loading圖片 ###### tags: `Crawler` ## 問題描述 爬取電商網站的商品照片資料時,明明在該網站上看就是正常的 但是把爬下來的照片網址複製貼上,卻發現照片又小又糊。 圖左為爬下來的圖片網址 圖右為利用開發者工具檢視該網站HTML取出的照片網址  ## 分析原因 如果仔細去觀察網站,會發現當快速滑動頁面的時候,照片會先是模糊的才慢慢變清楚 這時候我們就可以推測該電商使用Lazy Loading的技術 讓該商品資訊進入螢幕的時候才進行加載,所以我們一開始抓到的資料才會是模糊的。 ## 解決辦法 由於使用的是Selenium爬蟲工具,因此模擬瀏覽器跟著爬蟲的進度下滑網頁 彷彿就是真的使用者一般,讓圖片隨著螢幕的滑動跟著加載  ## 缺點 然而使用Selenium有一項缺點就是效率問題,加上當時的網路狀態也會影響到爬蟲的進行,不穩定的因素增加 ## 改進辦法 因此若是使用Beautiful Soup 4,可以更方便且有效率的爬到照片網址 下圖是該網站的HTML,可以看到同一張照片有不同的尺寸,從60~1680不等 1. 從開發者工具找到取得圖片的API以及payload 2. 利用POSTMAN打API獲取網頁資源 3. 透過解析JSON的方式去拿取所要的資料以及選擇照片尺寸連結 會比使用Selenium來得更快速、穩定 
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up