Python批量下载指定链接页面内的所有图片

查看 81|回复 9
作者:Lengxiy   
前言
这里是直接读取txt文本内的json数据,没有太过高深的技术之类的,至于这些链接哪儿来的是通过浏览器F12找到对应的数据包找到的
这个txt里面的数据来自该链接:https://mp.weixin.qq.com/s/4qlRBicxn2cXPqJLxR4_TQ?from=industrynews&version=4.1.22.8031&platform=win&nwr_flag=1#wechat_redirect
然后里面有个数据包,都是页面上面的超链接


ff7af428d1cf268f61b591b47a34d5d.png (227.42 KB, 下载次数: 0)
下载附件
2024-5-27 14:58 上传

我这里只是单纯的将这些全都复制到了txt文本内再用python读取的,当然也可以通过python直接访问该链接,找到这个数据包获取里面json数据即网址再通过下面的代码下载图片
可以简单修改就可以用在其他地方了
至于为啥只下载图片,因为我随便瞅了几眼,全是图片的内容,然后也没几个文字,就直接下载了
领导反正也没说让我筛选,就偷懒没写筛选的相关代码了
运行模式:
1.读取txt文本内的所有链接
2.根据每个链接建立一个文件夹,将访问后的页面的所有图片下载下来存在对应的文件夹内
3.图片名称按照数字顺序命名
4.用的selenium按照固定的滑动距离快速滑动滑动至底部以确保页面加载完毕下面是txt文本内的格式数据参考



image.png (791.8 KB, 下载次数: 0)
下载附件
2024-5-27 13:08 上传

代码
[Python] 纯文本查看 复制代码import json
import os
import requests
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
import time
# 设置Chrome选项
chrome_options = Options()
# chrome_options.add_argument("--headless")  # 无头模式
chrome_options.add_argument("--disable-gpu")
chrome_options.add_argument("--no-sandbox")
# 初始化webdriver
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)
# 假设txt文件名为"urls.txt",并且位于当前工作目录中
txt_file_path = "{.txt"
# 读取txt文件中的内容
with open(txt_file_path, 'r', encoding='utf-8') as file:
    content = file.read()
# 解析JSON内容
urls = json.loads(content)
urls1 = urls["url"]
# 创建一个主文件夹来保存所有下载的图片
os.makedirs('downloaded_images', exist_ok=True)
# 遍历URL列表,下载每个网页上的所有图片
for idx, url in enumerate(urls1):
    print(f"正在处理URL {idx+1}: {url}")
    driver.get(url)
   
    # 模拟缓慢滚动行为
    SCROLL_PAUSE_TIME = 0.1
    scroll_increment = 500
    last_height = driver.execute_script("return document.body.scrollHeight")
    current_position = 0
    while current_position

图片, 链接

52zct   


Lengxiy 发表于 2024-5-27 14:57
举个例子
https://mp.weixin.qq.com/s/4qlRBicxn2cXPqJLxR4_TQ?from=industrynews&version=4.1.22.8031& ...

学会了,感谢老哥分享,不过,如果是下载这些链接内容以及图片的话,我有一个程序,可以一键实现
https://www.123pan.com/s/tW78Vv-rZzJH.html
Lengxiy
OP
  


52zct 发表于 2024-5-27 14:40
这个需要我们先按F12,然后手动整理图片链接吗?
还是说可以直接把网页链接放到txt中,自动获取该url中所 ...

举个例子
https://mp.weixin.qq.com/s/4qlRBicxn2cXPqJLxR4_TQ?from=industrynews&version=4.1.22.8031&platform=win&nwr_flag=1#wechat_redirect
这个页面里面有很多超链接,领导要求把这个里面的报告全下载下来(意思就是访问每个连接里面的页面,下载里面所有的内容)
然后访问这个链接的时候,里面有个数据包就是直接以json格式传所有的超链接的
qjlfl   

学习了,感谢分享!
wulaiye   

感谢分享
52zct   

这个需要我们先按F12,然后手动整理图片链接吗?
还是说可以直接把网页链接放到txt中,自动获取该url中所有链接
dhwl9899   

谢谢,学习学习了。
xinxiu   


52zct 发表于 2024-5-27 20:13
学会了,感谢老哥分享,不过,如果是下载这些链接内容以及图片的话,我有一个程序,可以一键实现
https: ...

这个箭头怎么做得这么丝滑的?
52zct   


xinxiu 发表于 2024-5-27 22:23
这个箭头怎么做得这么丝滑的?

因为昨天北京的天空很好看!
hllolyl   

学习学习,感谢分享
您需要登录后才可以回帖 登录 | 立即注册