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

利用Python抓取阿里云盘资源

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

利用Python抓取阿里云盘资源

前阵子阿里云盘大火,送了好多的容量空间。而且阿里云盘下载是不限速,这点比百度网盘好太多了。这两天看到一个第三方网站可以搜索阿里云盘上的资源,但是它的资源顺序不是按时间排序的。这种情况会造成排在前面时间久远的资源是一个已经失效的资源。小编这里用 python 抓取后重新排序。

网页分析

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

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

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

  • page:页数,
  • keyword:搜索的关键字
  • category:文件分类,all(全部),video(视频),image(图片),doc(文档),audio(音频),zip(压缩文件),others(其他),脚本中默认写 all
  • search_model:搜索的线路

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

抓取与解析

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

pip3 install bs4

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

import requests
from bs4 import BeautifulSoup
import string


word = 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)

示例结果:

模板

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

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

<body>
    <div id="app">
        <el-table :data="table" style="width: 100%" :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)

示例结果:

跳转到阿里云盘界面

完整代码

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" style="width: 100%" :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 requests
from bs4 import BeautifulSoup
import string


word = 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 做一些小爬虫,不仅去掉网站上烦人的广告,也更加的便利了。

以上就是利用Python抓取阿里云盘资源的详细内容,更多关于Python抓取云盘资源的资料请关注编程网其它相关文章!

免责声明:

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

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

利用Python抓取阿里云盘资源

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

下载Word文档

猜你喜欢

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

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

时光代理人阿里云盘资源

确定主题和目的:在构建资料库之前,首先要明确你的主题和目的。你想要存储哪些信息?你想要建立一个什么样的资料库?你需要什么样的格式和内容?选择合适的存储平台:有很多不同的存储平台可供选择,如Dropbox,GoogleDrive,DropboxEvernote,微软的OneDrive等等。在选择存储平台时,请确保你选择的
时光代理人阿里云盘资源
2023-10-28

Python使用urllib2模块抓取HTML页面资源的实例分享

先把要抓取的网络地址列在单独的list文件中http://www.lsjlt.com/article/83440.html http://www.lsjlt.com/article/83437.html http://www.lsjlt.c
2022-06-04

阿里云ECS资源管理高效运维的利器

阿里云ECS(ElasticComputeService)是阿里云推出的一种弹性计算服务,为用户提供灵活、可扩展的计算能力。本文将详细介绍阿里云ECS资源管理,包括资源的创建、查看、更新、删除等操作,以及如何进行资源的监控和优化,以提高运维效率。一、阿里云ECS资源管理概述阿里云ECS资源管理主要包括以下几个方面
阿里云ECS资源管理高效运维的利器
2023-11-22

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

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

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

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

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

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

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

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

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

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

阿里云ECS公网资源分布及使用情况

阿里云ECS是阿里云推出的一种弹性计算服务,能够提供稳定可靠的计算资源。在ECS上运行的应用可以访问公网,实现对外服务。本文将详细介绍阿里云ECS公网资源分布情况和使用情况。正文:阿里云ECS公网资源分布情况:阿里云ECS公网资源主要包括公网IP和安全组。阿里云提供了大量的公网IP,用户可以根据自己的需求选择合适
阿里云ECS公网资源分布及使用情况
2023-11-20

阿里云静态资源服务器怎么用的啊

简介阿里云静态资源服务器是一种用于存储和分发静态资源的解决方案,可以帮助开发人员更高效地管理和发布网站内容。本文将介绍如何使用阿里云静态资源服务器,并提供一些实际应用的例子。使用步骤步骤一:创建静态资源服务器实例在阿里云控制台上,选择合适的地域和可用区,然后创建一个静态资源服务器实例。在创建实例时,可以选择实例规格、存
阿里云静态资源服务器怎么用的啊
2024-01-18

阿里云服务器大学生如何利用云计算资源实现个人和团队项目

随着科技的发展,云计算已经成为大学生进行个人和团队项目的重要工具。阿里云服务器作为国内领先的云计算服务提供商,为大学生提供了丰富的云计算资源,使他们能够更加方便、快捷地进行个人和团队项目的开发和管理。本文将详细介绍如何利用阿里云服务器进行个人和团队项目的开发和管理。正文:一、什么是阿里云服务器阿里云服务器是阿里云
阿里云服务器大学生如何利用云计算资源实现个人和团队项目
2023-12-09

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

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

阿里云服务器资源怎么用一份全面的指南

本文将详细介绍如何充分利用阿里云服务器的资源,包括如何创建、配置和管理服务器,以及如何在服务器上运行应用程序和服务。一、创建阿里云服务器阿里云服务器的创建过程非常简单,只需要几步操作即可完成。首先,你需要在阿里云官方网站上注册一个账号,然后在控制台中选择“购买产品”选项,然后选择你想要的服务器类型和配置。最后,按
阿里云服务器资源怎么用一份全面的指南
2023-10-31

阿里云静态资源服务器地址及其使用方法

随着互联网的发展,静态资源(如图片、CSS、JavaScript等)在网站中的应用越来越广泛。为了方便用户访问和管理这些资源,阿里云提供了静态资源服务器地址。本文将详细介绍如何使用阿里云静态资源服务器地址,以及如何在网站中引用静态资源。一、阿里云静态资源服务器地址的使用阿里云静态资源服务器地址是阿里云提供的一种静
阿里云静态资源服务器地址及其使用方法
2023-11-05

阿里云专用服务器一种高效且安全的云计算资源

阿里云专用服务器是一种专门为用户量身定制的云计算资源,旨在提供高效、安全和稳定的运行环境。阿里云是中国领先的云计算服务提供商,致力于为全球用户提供创新、可靠和安全的云计算解决方案。正文:阿里云专用服务器是一种基于阿里云技术的云计算服务,它具有高效、安全和稳定的特点。阿里云是中国领先的云计算服务提供商,拥有丰富的云
阿里云专用服务器一种高效且安全的云计算资源
2023-12-10

阿里云计量服务器了解并掌握你的资源使用情况

阿里云计量服务器是一款全面的云资源管理系统,它能够帮助用户实时监控和管理其在阿里云上使用的资源。通过这款工具,用户可以轻松地了解和控制自己的资源使用情况,从而更好地管理自己的云服务。正文:阿里云计量服务器是阿里云推出的一款强大的云资源管理系统。它可以帮助用户实时监控和管理其在阿里云上使用的资源,包括计算、存储、网
阿里云计量服务器了解并掌握你的资源使用情况
2023-11-22

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

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

编程热搜

  • 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动态编译

目录