Python爬虫——利用PhantomJS下载动态加载图片

简介:   在浏览网页过程中,我们会遇到一些让人心动的图片,这时我们需要将它保存在本地。一般我们用BeautifulSoup可以解析静态网页,但很多时候我们遇到的都是动态加载的图片,无法再利用urllib模块操作了。

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

目录
相关文章
|
10月前
|
数据采集 Web App开发 数据安全/隐私保护
实战:Python爬虫如何模拟登录与维持会话状态
实战:Python爬虫如何模拟登录与维持会话状态
|
11月前
|
数据采集 Web App开发 自然语言处理
新闻热点一目了然:Python爬虫数据可视化
新闻热点一目了然:Python爬虫数据可视化
|
10月前
|
数据采集 监控 数据库
Python异步编程实战:爬虫案例
🌟 蒋星熠Jaxonic,代码为舟的星际旅人。从回调地狱到async/await协程天堂,亲历Python异步编程演进。分享高性能爬虫、数据库异步操作、限流监控等实战经验,助你驾驭并发,在二进制星河中谱写极客诗篇。
Python异步编程实战:爬虫案例
|
11月前
|
数据采集 存储 XML
Python爬虫技术:从基础到实战的完整教程
最后强调: 父母法律法规限制下进行网络抓取活动; 不得侵犯他人版权隐私利益; 同时也要注意个人安全防止泄露敏感信息.
1144 19
|
10月前
|
数据采集 存储 JSON
Python爬虫常见陷阱:Ajax动态生成内容的URL去重与数据拼接
Python爬虫常见陷阱:Ajax动态生成内容的URL去重与数据拼接
|
11月前
|
机器学习/深度学习 编解码 Python
Python图片上采样工具 - RealESRGANer
Real-ESRGAN基于深度学习实现图像超分辨率放大,有效改善传统PIL缩放的模糊问题。支持多种模型版本,推荐使用魔搭社区提供的预训练模型,适用于将小图高质量放大至大图,放大倍率越低效果越佳。
865 3
|
10月前
|
数据采集 存储 JavaScript
解析Python爬虫中的Cookies和Session管理
Cookies与Session是Python爬虫中实现状态保持的核心。Cookies由服务器发送、客户端存储,用于标识用户;Session则通过唯一ID在服务端记录会话信息。二者协同实现登录模拟与数据持久化。
|
11月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
1716 102
|
11月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
528 104
|
11月前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
421 103

推荐镜像

更多