python 学习笔记第一篇---下载网页内所有图片

第一步:打开网址,进入开发者模式,选中 Network,选择 Img 然后刷新页面,静静等待页面加载在这里插入图片描述

等待页面加载完成,你可以看到这边有很多图片的资源
在这里插入图片描述
随便点开一个图片选择 Headers 可以看到 Request URL 也就是这张图片的资源路径

在这里插入图片描述
到这里我们就可以开始写第一个方法了,根据图片的资源路径下载图片到本地

# 这是一个示例 Python 脚本。

# 按 Shift+F10 执行或将其替换为您的代码。
# 按 双击 Shift 在所有地方搜索类、文件、工具窗口、操作和设置。
import os
import urllib.request
from pathlib import Path


# 根据图片的资源路径下载图片到本地
def download_by_url(url):
    # 获取当前文件名作为保存文件夹
    path = os.path.basename(__file__).split('.')[0]
    # 获取 url 中文件名称和扩展名作为保存文件名
    name = url.split('/')[-1]
    # 获取文件扩展名作为文件保存分类
    file_type = name.split('.')[1]
    path += '/' + file_type
    # 判断文件保存路径是否存在,不存在则创建
    dirs = Path(path)
    if not dirs.is_dir():
        os.makedirs(path)

    # 根据文件路径获取文件,如果文件不存在则创建
    # wb: 以二进制格式打开一个文件只用于写入
    file_path = path + '/' + name
    file = open(file_path, 'wb')
    try:
        # 通过 url 获取资源
        request = urllib.request.urlopen(url)
        # 将图片二进制数据写入文件
        file.write(request.read())
        print('文件保存成功!')
    except IOError:
        print('获取资源失败!')
    # 关闭文件
    file.close()


# 按间距中的绿色按钮以运行脚本。
if __name__ == '__main__':
    download_by_url("https://u1.res.netease.com/pc/gw/20201014103243/img/p3/bg3_33_52a4a14.jpg")

# 访问 https://www.jetbrains.com/help/pycharm/ 获取 PyCharm 帮助

运行程序,图片保存成功
在这里插入图片描述

现在我们只要有资源路径就可以下载资源,所以接下来我们需要获取网站内的所有资源路径

第二步:按 ctrl + f 打开控制台搜索,把我们之前得到的 url 粘贴进去,点击刷新,我们可以看到出来了一串数据
在这里插入图片描述
点开数据,我们可以看到我们需要的 url 在一个 js 的 Response 当中,打开 Headers 我们可以看到这个 js 文件的资源路径,通过 js 的资源路径我们就可以获取到 js 里面的数据
在这里插入图片描述
在这里插入图片描述

复制 Response 底下的数据到网上随便找个 json 解析工具格式化一下,可以看到里面有一大堆的 jpg 和 png,所以我们需要把这个大字符串里面的 jpg 和 png 的 url 全部给他拿出来
在这里插入图片描述
仔细观察这边的数据并不是 json 格式的,而且里面有多个对象,转成 json 格式的话不太方便,所以我打算把里面的 jpg 和 png 的 url 单独切割出来
这个使用到正则表达式

"http.*?"

表示获取 "http 开头 " 结尾的字符串
.*? 只匹配符合条件的最少字符

到了这里我们就可以写我们的第二个方法了,通过 js 的资源路径获取 js 里面的所有 jpg 和 png 路径

# 这是一个示例 Python 脚本。

# 按 Shift+F10 执行或将其替换为您的代码。
# 按 双击 Shift 在所有地方搜索类、文件、工具窗口、操作和设置。
import os
import urllib.request
from pathlib import Path
import re

import requests


# 通过 js 的资源路径获取 js 里面的所有 jpg 和 png 路径
def find_url(url):
    file_url_list = []
    try:
        js_data = requests.get(url)
    except IOError:
        print('获取JS数据失败!')
        return file_url_list
    # 拿到所以 http 开头的 url
    http_url_list = re.findall('"http.*?"', js_data.text)
    for http_url in http_url_list:
        # 找到 jpg 和 png 扩展名的 url
        if http_url.find('.jpg') != -1or http_url.find('.png') != -1:
            # http_url 字符串两头中包含了 " 号,需要截取掉
            file_url_list.append(http_url[1:-1])
    print('Js 内 URL 获取完毕...')
    return file_url_list


# 根据图片的资源路径下载图片到本地
def download_by_url(url):
    # 获取当前文件名作为保存文件夹
    path = os.path.basename(__file__).split('.')[0]
    # 获取 url 中文件名称和扩展名作为保存文件名
    name = url.split('/')[-1]
    # 获取文件扩展名作为文件保存分类
    file_type = name.split('.')[1]
    path += '/' + file_type
    # 判断文件保存路径是否存在,不存在则创建
    dirs = Path(path)
    if not dirs.is_dir():
        os.makedirs(path)

    # 根据文件路径获取文件,如果文件不存在则创建
    # wb: 以二进制格式打开一个文件只用于写入
    file_path = path + '/' + name
    file = open(file_path, 'wb')
    try:
        # 通过 url 获取资源
        request = urllib.request.urlopen(url)
        # 将图片二进制数据写入文件
        file.write(request.read())
    except IOError:
        print('获取资源失败!')
    # 关闭文件
    file.close()


# 按间距中的绿色按钮以运行脚本。
if __name__ == '__main__':
    for url in find_url("https://u1.res.netease.com/pc/gw/20201014103243/js/app/data_13ce3a8.js"):
        download_by_url(url)

# 访问 https://www.jetbrains.com/help/pycharm/ 获取 PyCharm 帮助

程序运行,效果如下
在这里插入图片描述

到这里就可以通过 JS 资源下载图片了,接下来开始第三步,获取网页内全部的JS

第三步:有了第二步经验,我们很快就能找到 JS 的 url 地址来源
在这里插入图片描述
在这里插入图片描述
由此我们知道,通过网站地址获取 js 资源的方式和第二步,通过 js 获取图片资源的方式是一样的,所以我把第二步的方法进行了修改

# 这是一个示例 Python 脚本。

# 按 Shift+F10 执行或将其替换为您的代码。
# 按 双击 Shift 在所有地方搜索类、文件、工具窗口、操作和设置。
import os
import urllib.request
from pathlib import Path
import re

import requests


# 通过资源路径获取里面的所有URL路径
def find_url(url, file_type):
    file_url_list = []
    try:
        js_data = requests.get(url)
    except IOError:
        print('获取JS数据失败!')
        return file_url_list
    # 拿到所以 http 开头的 url
    http_url_list = re.findall('"http.*?"', js_data.text)
    for http_url in http_url_list:
        # 找到 jpg 和 png 扩展名的 url
        if http_url.find('.' + file_type) != -1:
            # http_url 字符串两头中包含了 " 号,需要截取掉
            file_url_list.append(http_url[1:-1])
    print('URL 获取完毕...')
    return file_url_list


# 根据图片的资源路径下载图片到本地
def download_by_url(url):
    # 获取当前文件名作为保存文件夹
    path = os.path.basename(__file__).split('.')[0]
    # 获取 url 中文件名称和扩展名作为保存文件名
    name = url.split('/')[-1]
    # 获取文件扩展名作为文件保存分类
    file_type = name.split('.')[1]
    path += '/' + file_type
    # 判断文件保存路径是否存在,不存在则创建
    dirs = Path(path)
    if not dirs.is_dir():
        os.makedirs(path)

    # 根据文件路径获取文件,如果文件不存在则创建
    # wb: 以二进制格式打开一个文件只用于写入
    file_path = path + '/' + name
    file = open(file_path, 'wb')
    try:
        # 通过 url 获取资源
        request = urllib.request.urlopen(url)
        # 将图片二进制数据写入文件
        file.write(request.read())
    except IOError:
        print('获取资源失败!')
    # 关闭文件
    file.close()


# 按间距中的绿色按钮以运行脚本。
if __name__ == '__main__':
    for js in find_url("http://u1.163.com/index.html", 'js'):
        for jpg in find_url(js, 'jpg'):
            download_by_url(jpg)
        for png in find_url(js, 'png'):
            download_by_url(png)


# 访问 https://www.jetbrains.com/help/pycharm/ 获取 PyCharm 帮助

至此,全篇结束(本文仅作技术研究,不涉及任何商业用途)

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python学习笔记文档可以通过以下方式进行下载: 1. 在Python官方网站上下载:可以直接访问Python官方网站(https://www.python.org/),找到并点击"Downloads"页面。在该页面上,可以选择合适的Python版本下载链接,根据操作系统的类型(Windows、Mac或Linux)选择下载对应的安装包。下载完成后,双击安装包进行安装,并按照安装向导中的步骤完成安装过程。 2. 在第三方网站上下载:除了Python官方网站,还有一些第三方网站也提供Python学习笔记文档的下载。例如,可以在GitHub等代码托管平台上搜索Python学习笔记相关的项目,找到相应的仓库后,可以选择下载最新的代码或者文档压缩包。 3. 在在线教育平台下载:如果你正在参加一个Python学习课程,很可能课程平台会提供Python学习笔记文档的下载链接。你可以登录该平台,进入对应的课程页面,找到相应的学习笔记下载链接,并点击下载。 总之,Python学习笔记文档的下载可以在Python官方网站、第三方网站或在线教育平台上进行。根据自己的需求和情况,选择合适的下载方式,下载Python学习笔记文档以便学习和参考。 ### 回答2: 要下载Python学习笔记文档,可以按照以下步骤进行: 1. 打开一个浏览器,比如Chrome、Firefox等。 2. 在地址栏中输入Python学习笔记文档的下载链接,这可以是一个网址或者一个文件链接。 3. 按下回车键,浏览器会开始加载该链接。 4. 如果是一个网址,浏览器会打开一个网页,你可以在网页上找到学习笔记文档的下载链接。 5. 如果是一个文件链接,浏览器会直接开始下载该文件。 6. 等待下载完成,下载的速度取决于你的网络连接。 7. 下载完成后,你可以在浏览器的下载文件夹中找到学习笔记文档,通常在默认情况下会保存在电脑的“下载”文件夹中。 8. 双击打开学习笔记文档,就可以开始学习了。 请注意,在下载文件时要注意文件的来源和安全性,确保文件没有包含恶意软件或病毒。如果你不确定文件的可信度,建议通过官方网站或权威来源下载或购买学习笔记

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值