iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >利用Python抓取阿里云盘资源
  • 412
分享到

利用Python抓取阿里云盘资源

2024-04-02 19:04:59 412人浏览 八月长安

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 src="https://unpkg.com/vue@next"></script>
    <!-- import CSS -->
    <link rel="stylesheet" href="https://unpkg.com/element-plus/dist/index.css">
    <!-- import javascript -->
    <script 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抓取云盘资源的资料请关注编程网其它相关文章!

--结束END--

本文标题: 利用Python抓取阿里云盘资源

本文链接: https://www.lsjlt.com/news/140000.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • 利用Python抓取阿里云盘资源
    目录网页分析抓取与解析模板完整代码总结前阵子阿里云盘大火,送了好多的容量空间。而且阿里云盘下载是不限速,这点比百度网盘好太多了。这两天看到一个第三方网站可以搜索阿里云盘上的资源,但是...
    99+
    2022-11-13
  • 如何用Python抓取阿里云盘资源
    这篇文章主要介绍“如何用Python抓取阿里云盘资源”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何用Python抓取阿里云盘资源”文章能帮助大家解决问题。网页分析这个网站有两个搜索路线:搜索线路...
    99+
    2023-06-29
  • 时光代理人阿里云盘资源
    确定主题和目的:在构建资料库之前,首先要明确你的主题和目的。你想要存储哪些信息?你想要建立一个什么样的资料库?你需要什么样的格式和内容? 选择合适的存储平台:有很多不同的存储平台可供选择,如Dropbox,Google Drive,Dro...
    99+
    2023-10-28
    阿里 代理人 时光
  • 阿里云盘福利码领取可免费增加阿里云盘3TB+
    昨日折腾一年多的阿里云盘终于公测了!最大亮点2个: 1、上传下载不限速; 2、可免费获得存储容量,一年期(目前见到最多10T) 目前最新版的阿里云盘在界面上也有了很大的变化,底部...
    99+
    2022-11-11
  • Python使用urllib2模块抓取HTML页面资源的实例分享
    先把要抓取的网络地址列在单独的list文件中 http://www.lsjlt.com/article/83440.html http://www.lsjlt.com/article/83437.ht...
    99+
    2022-06-04
    实例 模块 页面
  • 阿里云服务器磁盘资源报警如何解除
    本文将详细介绍阿里云服务器磁盘资源报警的解除方法,包括原因分析、预防措施和解除步骤。 一、原因分析阿里云服务器磁盘资源报警的主要原因有以下几个方面:磁盘使用率过高:当磁盘使用率超过90%时,系统会自动发出报警。磁盘空间不足:当磁盘空间不足时...
    99+
    2023-12-16
    阿里 磁盘 服务器
  • 阿里云ECS资源管理高效运维的利器
    阿里云ECS(Elastic ComputeService)是阿里云推出的一种弹性计算服务,为用户提供灵活、可扩展的计算能力。本文将详细介绍阿里云ECS资源管理,包括资源的创建、查看、更新、删除等操作,以及如何进行资源的监控和优化,以提高...
    99+
    2023-11-22
    高效 阿里 利器
  • 阿里云服务器服务项目如何更好地利用云计算资源
    随着互联网的普及和技术的快速发展,越来越多的企业和个人开始使用云计算服务。阿里云作为国内领先的云计算服务提供商,为用户提供了一系列服务器服务项目,包括云服务器、弹性伸缩服务、负载均衡服务、内容分发网络服务等。本文将详细介绍阿里云服务器服务项...
    99+
    2023-10-30
    阿里 服务项目 服务器
  • 阿里云服务器ECS分区管理如何实现高效资源利用
    阿里云服务器ECS(Elastic ComputeService)是阿里云提供的弹性计算服务,它能够根据您的需求自动扩展或收缩计算资源,以实现高效资源利用。然而,如何进行分区管理,提高服务器性能,是一个需要深入理解的问题。本文将为您详细说...
    99+
    2023-10-31
    高效 阿里 分区
  • 如何利用阿里云服务器D盘
    本文将介绍如何使用阿里云服务器D盘。D盘是阿里云服务器上的一种磁盘空间,可用于存储数据、程序或操作系统文件。本文将详细说明如何使用D盘,包括创建D盘、格式化D盘、上传文件到D盘、查看D盘内容和删除D盘文件等。 一、创建D盘登录阿里云控制台,...
    99+
    2023-11-10
    阿里 服务器
  • 阿里云ECS公网资源分布及使用情况
    阿里云ECS是阿里云推出的一种弹性计算服务,能够提供稳定可靠的计算资源。在ECS上运行的应用可以访问公网,实现对外服务。本文将详细介绍阿里云ECS公网资源分布情况和使用情况。 阿里云ECS公网资源分布情况:阿里云ECS公网资源主要包括公网I...
    99+
    2023-11-20
    公网 阿里 情况
  • 阿里云服务器最优惠券获取更多云资源,轻松打造企业级应用
    阿里云服务器是最常用的云计算产品之一,它提供了丰富的服务,包括计算、存储、网络、安全、数据库等。为了让更多的用户能够享受到云服务器的便利,阿里云提供了大量的优惠券,让用户可以以更低的价格获得更多的云资源。本篇文章将详细介绍阿里云服务器最优惠...
    99+
    2023-11-07
    阿里 优惠券 企业级
  • 阿里云服务器大学生如何利用云计算资源实现个人和团队项目
    随着科技的发展,云计算已经成为大学生进行个人和团队项目的重要工具。阿里云服务器作为国内领先的云计算服务提供商,为大学生提供了丰富的云计算资源,使他们能够更加方便、快捷地进行个人和团队项目的开发和管理。本文将详细介绍如何利用阿里云服务器进行个...
    99+
    2023-12-09
    阿里 团队 服务器
  • 阿里云服务器资源怎么用一份全面的指南
    本文将详细介绍如何充分利用阿里云服务器的资源,包括如何创建、配置和管理服务器,以及如何在服务器上运行应用程序和服务。 一、创建阿里云服务器阿里云服务器的创建过程非常简单,只需要几步操作即可完成。首先,你需要在阿里云官方网站上注册一个账号,...
    99+
    2023-10-31
    阿里 服务器 指南
  • 阿里云静态资源服务器地址及其使用方法
    随着互联网的发展,静态资源(如图片、CSS、JavaScript等)在网站中的应用越来越广泛。为了方便用户访问和管理这些资源,阿里云提供了静态资源服务器地址。本文将详细介绍如何使用阿里云静态资源服务器地址,以及如何在网站中引用静态资源。 一...
    99+
    2023-11-05
    阿里 使用方法 静态
  • 阿里云专用服务器一种高效且安全的云计算资源
    阿里云专用服务器是一种专门为用户量身定制的云计算资源,旨在提供高效、安全和稳定的运行环境。阿里云是中国领先的云计算服务提供商,致力于为全球用户提供创新、可靠和安全的云计算解决方案。 阿里云专用服务器是一种基于阿里云技术的云计算服务,它具有高...
    99+
    2023-12-10
    高效 阿里 服务器
  • 阿里云计量服务器了解并掌握你的资源使用情况
    阿里云计量服务器是一款全面的云资源管理系统,它能够帮助用户实时监控和管理其在阿里云上使用的资源。通过这款工具,用户可以轻松地了解和控制自己的资源使用情况,从而更好地管理自己的云服务。 阿里云计量服务器是阿里云推出的一款强大的云资源管理系统。...
    99+
    2023-11-22
    阿里 情况 服务器
  • 阿里云服务器流量充值如何合理分配和使用流量资源
    阿里云服务器是目前市场上备受欢迎的云计算服务之一,它提供了强大的计算能力和稳定可靠的服务器环境。然而,作为用户,我们需要了解如何合理分配和使用流量资源,以满足不同业务需求并提高应用性能。 1. 确定流量需求在充值阿里云服务器的流量之前,首先...
    99+
    2023-12-29
    流量 阿里 充值
  • 利用阿里云服务器开发Python应用简单易学的教程
    Python是一种广泛使用的编程语言,其简洁、易学的特性使得它在许多领域中得到了广泛应用,尤其是在服务器开发领域。阿里云作为国内领先的云计算服务提供商,提供了丰富的云服务器服务,使得开发者可以轻松地利用Python进行开发。本文将介绍如何利...
    99+
    2023-10-31
    阿里 易学 简单
  • 利用API调取阿里云服务器数据实现高效、安全的数据传输与处理
    随着信息化技术的快速发展,数据已经成为企业和组织的核心资产。为了更好地管理、处理和分析数据,我们常常需要将数据从一个系统或平台传输到另一个系统或平台。这就引出了一个问题:如何高效、安全地将数据从一个地方传输到另一个地方?本文将为您详细说明如...
    99+
    2023-11-11
    高效 阿里 数据传输
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作