Python爬虫(7)利用PhantomJS下载动态加载图片

作者: 山阴少年 | 来源:发表于2017-12-08 12:54 被阅读46次

      在浏览网页过程中,我们会遇到一些让人心动的图片,这时我们需要将它保存在本地。一般我们用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!")
    

      查看文件夹,我们发现图片已经下载完毕了。
      

    动态图片下载
      这样我们就能下载我们喜欢的动态图片啦~~


      本次分享到此结束,如有不足之处,还请批评指正,欢迎交流~~
      期待下一次分享!

    相关文章

      网友评论

        本文标题:Python爬虫(7)利用PhantomJS下载动态加载图片

        本文链接:https://www.haomeiwen.com/subject/kbreixtx.html