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), 欢迎大家关注哦~~

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值