本文主要是介绍【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黑科技】免登陆爬虫一键下载知乎文章图片(保姆级图文+实现代码)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!