我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何用Python抓取阿里云盘资源

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何用Python抓取阿里云盘资源

这篇文章主要介绍“如何用Python抓取阿里云盘资源”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何用Python抓取阿里云盘资源”文章能帮助大家解决问题。

网页分析

这个网站有两个搜索路线:搜索线路一和搜索线路二,本文章使用的是搜索线路二。

如何用Python抓取阿里云盘资源

打开控制面板下的网络,一眼就看到一个 seach.html 的 get 请求。

如何用Python抓取阿里云盘资源

上面带了好几个参数,四个关键参数:

  • page:页数,

  • keyword:搜索的关键字

  • category:文件分类,all(全部),video(视频),image(图片),doc(文档),audio(音频),zip(压缩文件),others(其他),脚本中默认写 all

  • search_model:搜索的线路

也是在控制面板中,看出这个网页跳转到阿里云盘获取真实的的链接是在标题上面的。用 bs4 解析页面上的 div(class=resource-item border-dashed-eee) 标签下的 a 标签就能得到跳转网盘的地址,解析 div 下的 p 标签获取资源日期。

如何用Python抓取阿里云盘资源

抓取与解析

首先安装需要的 bs4 第三方库用于解析页面。

pip3 install bs4

下面是抓取解析网页的脚本代码,最后按日期降序排序。

import requestsfrom bs4 import BeautifulSoupimport stringword = input('请输入要搜索的资源名称:')    headers = {    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'}result_list = []for i in range(1, 11):    print('正在搜索第 {} 页'.format(i))    params = {        'page': i,        'keyword': word,        'search_folder_or_file': 0,        'is_search_folder_content': 0,        'is_search_path_title': 0,        'category': 'all',        'file_extension': 'all',        'search_model': 0    }    response_html = requests.get('https://www.alipanso.com/search.html', headers = headers,params=params)    response_data = response_html.content.decode()       soup = BeautifulSoup(response_data, "html.parser");    divs = soup.find_all('div', class_='resource-item border-dashed-eee')        if len(divs) <= 0:        break    for div in divs[1:]:        p = div.find('p',class_='em')        if p == None:            break        download_url = 'https://www.alipanso.com/' + div.a['href']        date = p.text.strip();        name = div.a.text.strip();        result_list.append({'date':date, 'name':name, 'url':download_url})        if len(result_list) == 0:        break    result_list.sort(key=lambda k: k.get('date'),reverse=True)

示例结果:

如何用Python抓取阿里云盘资源

模板

上面抓取完内容后,还需要将内容一个个复制到 google 浏览器中访问,有点太麻烦了。要是直接点击一下能访问就好了。小编在这里就用 Python 的模板方式写一个 html 文件。

模板文件小编是用 elements-ui 做的,下面是关键的代码:

<body>    <div id="app">        <el-table :data="table"  :row-class-name="tableRowClassName">            <el-table-column prop="date" label="日期" width="180"> </el-table-column>            <el-table-column prop="name" label="名称" width="600"> </el-table-column>            <el-table-column label="链接">              <template slot-scope="scope">              <a :href="'http://'+scope.row.url" rel="external nofollow"                 target="_blank"                class="buttonText">{{scope.row.url}}</a>            </template>        </el-table>    </div>    <script>      const App = {        data() {          return {              table: ${elements}                      };        }      };      const app = Vue.createApp(App);      app.use(ElementPlus);      app.mount("#app");    </script>  </body>

在 python 中读取这个模板文件,并将 ${elements} 关键词替换为上面的解析结果。最后生成一个 report.html 文件。

with open("aliso.html", encoding='utf-8') as t:    template = string.Template(t.read())final_output = template.substitute(elements=result_list)with open("report.html", "w", encoding='utf-8') as output:    output.write(final_output)

示例结果:

如何用Python抓取阿里云盘资源

跳转到阿里云盘界面

如何用Python抓取阿里云盘资源

完整代码

aliso.html

<html>  <head>    <meta charset="UTF-8" />    <meta name="viewport" content="width=device-width,initial-scale=1.0" />    <script class="lazy" data-src="https://unpkg.com/vue@next"></script>    <!-- import CSS -->    <link rel="stylesheet" href="https://unpkg.com/element-plus/dist/index.css">    <!-- import JavaScript -->    <script class="lazy" data-src="https://unpkg.com/element-plus"></script>    <title>阿里云盘资源</title>  </head>  <body>    <div id="app">        <el-table :data="table"  :row-class-name="tableRowClassName">            <el-table-column prop="date" label="日期" width="180"> </el-table-column>            <el-table-column prop="name" label="名称" width="600"> </el-table-column>            <el-table-column label="链接">              <template v-slot="scope">              <a :href="scope.row.url"                target="_blank"                class="buttonText">{{scope.row.url}}</a>            </template>        </el-table>    </div>    <script>      const App = {        data() {          return {              table: ${elements}                      };        }      };      const app = Vue.createApp(App);      app.use(ElementPlus);      app.mount("#app");    </script>  </body></html>

aliso.py

# -*- coding: UTF-8 -*-import requestsfrom bs4 import BeautifulSoupimport stringword = input('请输入要搜索的资源名称:')    headers = {    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'}result_list = []for i in range(1, 11):    print('正在搜索第 {} 页'.format(i))    params = {        'page': i,        'keyword': word,        'search_folder_or_file': 0,        'is_search_folder_content': 0,        'is_search_path_title': 0,        'category': 'all',        'file_extension': 'all',        'search_model': 2    }    response_html = requests.get('https://www.alipanso.com/search.html', headers = headers,params=params)    response_data = response_html.content.decode()       soup = BeautifulSoup(response_data, "html.parser");    divs = soup.find_all('div', class_='resource-item border-dashed-eee')        if len(divs) <= 0:        break    for div in divs[1:]:        p = div.find('p',class_='em')        if p == None:            break        download_url = 'https://www.alipanso.com/' + div.a['href']        date = p.text.strip();        name = div.a.text.strip();        result_list.append({'date':date, 'name':name, 'url':download_url})        if len(result_list) == 0:        break    result_list.sort(key=lambda k: k.get('date'),reverse=True)print(result_list)with open("aliso.html", encoding='utf-8') as t:    template = string.Template(t.read())final_output = template.substitute(elements=result_list)with open("report.html", "w", encoding='utf-8') as output:    output.write(final_output)

关于“如何用Python抓取阿里云盘资源”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何用Python抓取阿里云盘资源

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何用Python抓取阿里云盘资源

这篇文章主要介绍“如何用Python抓取阿里云盘资源”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何用Python抓取阿里云盘资源”文章能帮助大家解决问题。网页分析这个网站有两个搜索路线:搜索线路
2023-06-29

阿里云服务器磁盘资源报警:如何解决?

简介阿里云服务器磁盘资源报警是指在使用阿里云服务器时,由于磁盘资源不足而触发的报警。这种情况下,服务器可能会出现性能下降、数据丢失等问题,因此及时解决非常重要。本文将介绍如何解决阿里云服务器磁盘资源报警问题。解决方法1.检查磁盘空间使用情况首先,我们需要检查服务器上的磁盘空间使用情况。可以通过登录到阿里云服务器控制台,
阿里云服务器磁盘资源报警:如何解决?
2024-01-30

阿里云服务器磁盘资源报警如何解除

本文将详细介绍阿里云服务器磁盘资源报警的解除方法,包括原因分析、预防措施和解除步骤。一、原因分析阿里云服务器磁盘资源报警的主要原因有以下几个方面:磁盘使用率过高:当磁盘使用率超过90%时,系统会自动发出报警。磁盘空间不足:当磁盘空间不足时,系统会提示磁盘空间不足,从而发出报警。磁盘错误:当磁盘出现错误时,系统也会
阿里云服务器磁盘资源报警如何解除
2023-12-16

阿里云如何创建ecs资源

阿里云的ECS(ElasticComputeService)是一种弹性计算服务,能够根据需要动态扩展或收缩计算资源,是云计算领域的重要组成部分。在本文中,我们将详细介绍如何在阿里云中创建ECS资源。一、创建ECS实例1.登录阿里云控制台,选择“ECS”。2.在ECS页面,点击“实例”按钮,进入实例创建页面。3.在
阿里云如何创建ecs资源
2023-11-06

如何购买阿里云的数据库资源

随着云计算技术的发展,越来越多的企业开始选择使用阿里云的数据库资源。但是,对于初次接触的人来说,可能会对如何购买阿里云的数据库资源感到困惑。本文将详细说明如何购买阿里云的数据库资源。购买阿里云的数据库资源非常简单,只需几个步骤即可完成。首先,你需要登录阿里云账号,然后在左侧菜单中找到“数据库”选项,点击进入。接下
如何购买阿里云的数据库资源
2023-10-29

阿里云服务器如何监控资源状态

1.简介阿里云服务器是一种强大的云计算服务,可以为用户提供稳定、可靠、高效的计算资源。然而,由于服务器的复杂性,用户可能无法及时了解服务器的状态和性能。因此,阿里云提供了多种监控工具和服务,帮助用户实时监测服务器资源状态。2.监控服务器资源状态的方法2.1云监控服务阿里云提供了一套完整的云监控服务,可以帮助用户实时监控
阿里云服务器如何监控资源状态
2024-01-21

阿里云盘如何使用代理

首先,我使用了阿里云盘的文件上传功能。我可以通过在浏览器中输入网址,上传一个指定大小的文件,然后保存在云盘中。这样我就可以随时随地地下载、上传、分享文件,非常方便。其次,我还使用了阿里云盘的文件分享功能。我可以将文件分享给其他人,让他们也可以访问并下载这些文件。这种分享方式比传统的文件传输方式更加便捷,也更加安全。此外
阿里云盘如何使用代理
2023-10-28

阿里云服务器服务项目如何更好地利用云计算资源

随着互联网的普及和技术的快速发展,越来越多的企业和个人开始使用云计算服务。阿里云作为国内领先的云计算服务提供商,为用户提供了一系列服务器服务项目,包括云服务器、弹性伸缩服务、负载均衡服务、内容分发网络服务等。本文将详细介绍阿里云服务器服务项目,帮助读者更好地理解云计算服务,以便在实际应用中选择适合的服务器资源。正
阿里云服务器服务项目如何更好地利用云计算资源
2023-10-30

阿里云服务器被莫名购买如何保护你的云资源

阿里云服务器被莫名购买是近年来云服务领域的一个常见问题。在数字化时代,云服务器是企业的重要资源,一旦被不法分子窃取,可能会对企业造成严重的损失。因此,了解如何保护自己的云服务器,防止被莫名购买,是非常必要的。一、阿里云服务器被莫名购买的原因阿里云服务器被莫名购买的主要原因有以下几点:阿里云服务器的访问权限设置不当
阿里云服务器被莫名购买如何保护你的云资源
2023-11-04

阿里云服务器ECS分区管理如何实现高效资源利用

阿里云服务器ECS(ElasticComputeService)是阿里云提供的弹性计算服务,它能够根据您的需求自动扩展或收缩计算资源,以实现高效资源利用。然而,如何进行分区管理,提高服务器性能,是一个需要深入理解的问题。本文将为您详细说明如何进行阿里云服务器ECS分区管理。正文:阿里云服务器ECS分区管理是阿里云
阿里云服务器ECS分区管理如何实现高效资源利用
2023-10-31

购买了百度云服务器后如何使用网盘资源

首先,我们需要在百度云上创建一个账号,并在账号中创建一个网盘资源的文件夹。在创建账号时,我们需要填写相应的信息,包括用户名、密码、邮箱等。接下来,我们需要登录百度云的服务器。在登录时,我们需要输入登录凭证和验证码,以验证我们的身份。登录成功后,我们就可以开始使用网盘资源了。在使用网盘资源时,我们可以通过以下几种方式来访
购买了百度云服务器后如何使用网盘资源
2023-10-28

阿里云服务器分区如何有效地进行资源管理

阿里云服务器分区是一种有效的资源管理方式,可以有效地帮助学生在使用阿里云服务器时,更好地管理自己的资源,提高使用效率。本文将详细介绍阿里云服务器分区的基本概念、创建和管理分区的过程以及其带来的优势。阿里云服务器分区是一种将阿里云服务器的硬盘空间划分为多个独立的部分的方法。这些分区可以用来存放不同的应用程序、数据库
阿里云服务器分区如何有效地进行资源管理
2023-11-19

如何利用阿里云服务器D盘

本文将介绍如何使用阿里云服务器D盘。D盘是阿里云服务器上的一种磁盘空间,可用于存储数据、程序或操作系统文件。本文将详细说明如何使用D盘,包括创建D盘、格式化D盘、上传文件到D盘、查看D盘内容和删除D盘文件等。正文:一、创建D盘登录阿里云控制台,找到并点击“服务器”。找到并点击“我的服务器”。找到并点击“管理”。在
如何利用阿里云服务器D盘
2023-11-10

阿里云服务器如何使用u盘

使用U盘存储数据需要满足以下条件:U盘存储数据:U盘可以存储数据,但存储的数据会被删除或移动到移动设备上的SD卡或其他存储设备上。网络连接:必须连接到互联网,确保U盘能够连接到互联网。U盘连接到服务器:如果服务器支持U盘存储数据,可以在服务器上为U盘创建一个文件夹,并将其作为U盘使用。如果您的U盘没有连接到互联网,或者U盘已经损坏或没有读写能力,则您需要联系您的云服务提供商并取得技术
2023-10-26

阿里云盘如何使用代理功能

首先,阿里云盘的代理功能非常强大,可以帮助用户在不连接外部网络的情况下访问云盘中的文件。使用代理功能可以节省大量的时间和精力,因为用户可以在云盘中随时访问自己的文件。在使用代理功能时,用户需要设置代理IP地址和端口。代理IP地址可以通过阿里云盘的管理界面进行设置,端口可以通过设置阿里云盘的客户端软件来设置。用户需要根据
阿里云盘如何使用代理功能
2023-10-27

阿里云盘如何使用代理服务器

1.什么是代理服务器?代理服务器是一种位于客户端和目标服务器之间的中间服务器,它充当客户端和目标服务器之间的桥梁。当客户端请求连接到目标服务器时,代理服务器会接收请求并将其转发给目标服务器,同时也会将目标服务器的响应返回给客户端。2.阿里云盘的代理服务器使用方法步骤一:获取代理服务器信息首先,你需要获取一个可用的代理服
阿里云盘如何使用代理服务器
2024-01-16

阿里云服务器流量充值如何合理分配和使用流量资源

阿里云服务器是目前市场上备受欢迎的云计算服务之一,它提供了强大的计算能力和稳定可靠的服务器环境。然而,作为用户,我们需要了解如何合理分配和使用流量资源,以满足不同业务需求并提高应用性能。1.确定流量需求在充值阿里云服务器的流量之前,首先需要明确自己的流量需求。这包括估算应用程序或网站的访问量、数据传输量以及与其他
阿里云服务器流量充值如何合理分配和使用流量资源
2023-12-29

阿里云服务器如何用u盘启动

如果您的阿里云服务器使用U盘来启动,您可以按照以下步骤进行操作:1.打开阿里云控制台(也称为“阿里云主页”,如下图所示)。2.在控制台中,按下"F11"键进入阿里云管理界面,选择“启动选项”。3.在启动选项中,选择“重新启动”并按下“回车键”。4.等待几秒钟后,阿里云服务器就会重新启动。如果您使用的是Windows操作系统,请注意,在“启动选项”中还可以设置阿里云服务
2023-10-26

阿里云服务器最优惠券获取更多云资源,轻松打造企业级应用

阿里云服务器是最常用的云计算产品之一,它提供了丰富的服务,包括计算、存储、网络、安全、数据库等。为了让更多的用户能够享受到云服务器的便利,阿里云提供了大量的优惠券,让用户可以以更低的价格获得更多的云资源。本篇文章将详细介绍阿里云服务器最优惠券的获取方式,以及如何使用这些优惠券来轻松打造企业级应用。阿里云服务器最优
阿里云服务器最优惠券获取更多云资源,轻松打造企业级应用
2023-11-07

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录