1. 程式人生 > >Python爬蟲——利用PhantomJS下載動態載入圖片

Python爬蟲——利用PhantomJS下載動態載入圖片

  在瀏覽網頁過程中,我們會遇到一些讓人心動的圖片,這時我們需要將它儲存在本地。一般我們用BeautifulSoup可以解析靜態網頁,但很多時候我們遇到的都是動態載入的圖片,無法再利用urllib模組操作了。
  本次分享將講述如何利用PhantomJS來下載動態圖片。我們的示例網址為:http://comic.kukudm.com/comiclist/43/395/4.htm ,該網頁只有一張動漫,讀者不難發現,該圖片是動態載入的。
  我們解決問題的思路為:利用PhantomJS載入網頁,然後利用page_source獲取載入後網頁的原始碼,裡面就有我們需要的圖片的下載網址!接著執行BeautifulSoup解析得到圖片網址,再用urllib.request.urlretrieve()函式下載圖片即可。
  以下為示例程式碼:

# -*- coding: utf-8 -*-
import bs4
import urllib.request  
from bs4 import BeautifulSoup  
from selenium import webdriver
from selenium.common.exceptions import TimeoutException

#利用PhantomJS載入網頁
browser = webdriver.PhantomJS()
browser.set_page_load_timeout(30) # 最大等待時間為30s
#當載入時間超過30秒後,自動停止載入該頁面
try
: browser.get('http://comic.kukudm.com/comiclist/43/395/4.htm') except TimeoutException: browser.execute_script('window.stop()') source = browser.page_source #獲取網頁原始碼 browser.quit() #解析網頁,獲取下載圖片的網址 soup = BeautifulSoup(source,'lxml') image = soup.find('img') url =image.get('src') #下載圖片 urllib.request.urlretrieve(url,"G:\\爬蟲圖片\浪客劍心.jpg"
) print("Download picture successfully!")

  檢視資料夾,我們發現圖片已經下載完畢了。
  動態圖片下載
  這樣我們就能下載我們喜歡的動態圖片啦~~


  本次分享到此結束,如有不足之處,還請批評指正,歡迎交流~~
  期待下一次分享^o^

注意:本人現已開通兩個微信公眾號: 因為Python(微訊號為:python_math)以及輕鬆學會Python爬蟲(微訊號為:easy_web_scrape), 歡迎大家關注哦~~