【Python黑科技】免登陆爬虫一键下载知乎文章图片(保姆级图文+实现代码)

本文主要是介绍【Python黑科技】免登陆爬虫一键下载知乎文章图片(保姆级图文+实现代码),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

    • 实现效果
    • 实现思路
      • 需要安装的库
      • 测试能否使用selenium
      • 保存文件
    • 实现代码
    • 总结


欢迎关注 『Python黑科技』 系列,持续更新中
欢迎关注 『Python黑科技』 系列,持续更新中

  • 仅供学习使用,本项目仅仅爬取下载一个网页下的图片内容,效果类似你打开一个知乎网页,把网页加载得到的图片保存下来,没有违法风险,仅仅作为一个爬虫学习的思路。

实现效果

得到图片
在这里插入图片描述
在这里插入图片描述


实现思路

通过selenium模拟打开网页,获取加载得到的图片url并把图片保存。

需要安装的库

import re
from selenium import webdriver
import time
import urllib.request

其中的selenium库需要配置谷歌浏览器驱动参考文章
配置selenium库的浏览器驱动,解决selenium.common.exceptions.SessionNotCreatedException 报错(保姆级图文)

测试能否使用selenium

# @Time    : 2022/1/15 16:32
# @Author  : 南黎
# @FileName: 测试能否使用selenium.py
from selenium import webdriverdriver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://blog.csdn.net/u011027547")

保存文件

将URL表示的网络对象复制到本地文件。

urllib.request.urlretrieve(content_list[n], local)
urllib.request.urlretrieve(url, filename)

  • url:外部或者本地url
  • filename:指定了保存到本地的路径(如果未指定该参数,urllib会生成一个临时文件来保存数据);
while n < len(content_list):i = time.time()local = (r"爬取到的图片/%s.jpg" % (i))#其实这里有个bug,把所有图片都保存为了jpg,gif动图也被保存为了jpg,但是不影响效果,还是gifurllib.request.urlretrieve(content_list[n], local)#把获取到的图片url和文件保存地址放入print("图片id:" + str(i))n = n + 1

实现代码

# @Time    : 2022/1/15 16:06
# @Author  : 南黎
# @FileName: 爬取知乎图片.py
import re
from selenium import webdriver
import time
import urllib.requestweb_driver = webdriver.Chrome()#新建一个Chrome对象
# web_driver.maximize_window()#新打开的谷歌浏览器窗口最大化,注释掉的话只有半个窗口大小url="https://zhuanlan.zhihu.com/p/457837506"
# url=input("请输入要爬取图片的知乎提问,文章网址:/n")#不注释这行代码可以自定义要爬取的网站web_driver.get(url)#打开网址
i = 0
while i < 10:web_driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")time.sleep(2)try:web_driver.find_element_by_css_selector('button.QuestionMainAction').click()print("page" + str(i))time.sleep(1)except:break
result_raw = web_driver.page_sourcecontent_list = re.findall("img src=\"(.+?)\" ", str(result_raw))#获取图片的url
n = 0while n < len(content_list):i = time.time()local = (r"爬取到的图片/%s.jpg" % (i))#其实这里有个bug,把所有图片都保存为了jpg,gif动图也被保存为了jpg,但是不影响效果,还是gifurllib.request.urlretrieve(content_list[n], local)#把获取到的图片url和文件保存地址放入print("图片id:" + str(i))n = n + 1

总结

大家喜欢的话,给个👍,点个关注!给大家分享更多有趣好玩的Python黑科技!

版权声明:

发现你走远了@mzh原创作品,转载必须标注原文链接

Copyright 2022 mzh

Crated:2022-1-15

欢迎关注 『Python黑科技』 系列,持续更新中
欢迎关注 『Python黑科技』 系列,持续更新中
【Python安装第三方库一行命令永久提高速度】
【使用PyInstaller打包exe】
【更多内容敬请期待】


这篇关于【Python黑科技】免登陆爬虫一键下载知乎文章图片(保姆级图文+实现代码)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1009686

相关文章

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

C/C++中OpenCV 矩阵运算的实现

《C/C++中OpenCV矩阵运算的实现》本文主要介绍了C/C++中OpenCV矩阵运算的实现,包括基本算术运算(标量与矩阵)、矩阵乘法、转置、逆矩阵、行列式、迹、范数等操作,感兴趣的可以了解一下... 目录矩阵的创建与初始化创建矩阵访问矩阵元素基本的算术运算 ➕➖✖️➗矩阵与标量运算矩阵与矩阵运算 (逐元

IIS 7.0 及更高版本中的 FTP 状态代码

《IIS7.0及更高版本中的FTP状态代码》本文介绍IIS7.0中的FTP状态代码,方便大家在使用iis中发现ftp的问题... 简介尝试使用 FTP 访问运行 Internet Information Services (IIS) 7.0 或更高版本的服务器上的内容时,IIS 将返回指示响应状态的数字代

C/C++的OpenCV 进行图像梯度提取的几种实现

《C/C++的OpenCV进行图像梯度提取的几种实现》本文主要介绍了C/C++的OpenCV进行图像梯度提取的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录预www.chinasem.cn备知识1. 图像加载与预处理2. Sobel 算子计算 X 和 Y

C/C++和OpenCV实现调用摄像头

《C/C++和OpenCV实现调用摄像头》本文主要介绍了C/C++和OpenCV实现调用摄像头,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录准备工作1. 打开摄像头2. 读取视频帧3. 显示视频帧4. 释放资源5. 获取和设置摄像头属性

c/c++的opencv图像金字塔缩放实现

《c/c++的opencv图像金字塔缩放实现》本文主要介绍了c/c++的opencv图像金字塔缩放实现,通过对原始图像进行连续的下采样或上采样操作,生成一系列不同分辨率的图像,具有一定的参考价值,感兴... 目录图像金字塔简介图像下采样 (cv::pyrDown)图像上采样 (cv::pyrUp)C++ O

c/c++的opencv实现图片膨胀

《c/c++的opencv实现图片膨胀》图像膨胀是形态学操作,通过结构元素扩张亮区填充孔洞、连接断开部分、加粗物体,OpenCV的cv::dilate函数实现该操作,本文就来介绍一下opencv图片... 目录什么是图像膨胀?结构元素 (KerChina编程nel)OpenCV 中的 cv::dilate() 函

Python使用FFmpeg实现高效音频格式转换工具

《Python使用FFmpeg实现高效音频格式转换工具》在数字音频处理领域,音频格式转换是一项基础但至关重要的功能,本文主要为大家介绍了Python如何使用FFmpeg实现强大功能的图形化音频转换工具... 目录概述功能详解软件效果展示主界面布局转换过程截图完成提示开发步骤详解1. 环境准备2. 项目功能结

SpringBoot使用ffmpeg实现视频压缩

《SpringBoot使用ffmpeg实现视频压缩》FFmpeg是一个开源的跨平台多媒体处理工具集,用于录制,转换,编辑和流式传输音频和视频,本文将使用ffmpeg实现视频压缩功能,有需要的可以参考... 目录核心功能1.格式转换2.编解码3.音视频处理4.流媒体支持5.滤镜(Filter)安装配置linu

在Spring Boot中实现HTTPS加密通信及常见问题排查

《在SpringBoot中实现HTTPS加密通信及常见问题排查》HTTPS是HTTP的安全版本,通过SSL/TLS协议为通讯提供加密、身份验证和数据完整性保护,下面通过本文给大家介绍在SpringB... 目录一、HTTPS核心原理1.加密流程概述2.加密技术组合二、证书体系详解1、证书类型对比2. 证书获