Python批量爬虫下载文件——把Excel中的超链接快速变成网址

本文的背景是:大学关系很好的老师问我能不能把Excel中1000个超链接网址对应的pdf文档下载下来。虽然可以手动一个一个点击下载,但是这样太费人力和时间了。我想起了之前的爬虫经验,给老师分析了一下可行性,就动手实践了。
  
没想到刚开始就遇到了困难,Excel中的超链接读到Python中直接显示成了中文。所以第一步就是把超链接对应的网址梳理出来,再用Python去爬取对应网址的pdf。本文分享批量爬虫下载文件的第一步,从Excel中把超链接转换成对应网址。下一篇文章分享批量爬虫下载pdf文件的代码。

文章目录

    • 一、想要得到的效果
    • 二、把超链接转换成对应网址的3个方法
      • 1 方法一:单个超链接鼠标点击转换
      • 2 方法二:自动套用格式
      • 3 方法三:自定义VBA函数转换
        • [1]启用【开发工具】,具体步骤如下:
        • [2]自定义一个VBA函数GetAdrs。
        • [3]用函数GetAdrs获取网址。

  

一、想要得到的效果

  
首先来看下想要得到的效果,第一列是原始的超链接,第二列是我们想要得到的对应网址。
  
在这里插入图片描述

  
  

二、把超链接转换成对应网址的3个方法

  
网上有很多方法实现超链接转换,我分享3个自己尝试的方法,前2个都失败了,最后1个是成功的。
  
  

1 方法一:单个超链接鼠标点击转换

  
第一个方法是选中想要把超链接转换成对应网址的单元格,接着双击鼠标左键,然后回车,单元格内容就会自动转换成网址。这种方法只适合转换超链接数量较少的情况,我在尝试过程中失败了。

  
  

2 方法二:自动套用格式

  
第二个方法是单击文件-更多-选项-校对-自动更正选项-键入时自动套用格式,选中Internet及网络路径替换为超链接,然后点击确定。第二个方法我尝试下来还是失败了……
  
  

3 方法三:自定义VBA函数转换

  
第三个方法是自定义VBA函数进行转换。
  

[1]启用【开发工具】,具体步骤如下:

  
左键单击菜单栏中的【文件】选项卡,然后左键单击【更多】,接着左键单击【选项】。左键单击【Excel 选项】中的【自定义功能区】选项,然后将【开发工具】前的小方格打上对勾,然后左键单击【确定】按钮,此时菜单栏中会多出一个选项【开发工具】。
  
step1:左键单击菜单栏中的【文件】选项卡,然后左键单击【更多】,接着左键单击【选项】。
  

在这里插入图片描述
  

step2:左键单击【Excel 选项】中的【自定义功能区】选项,然后将【开发工具】前的小方格打上对勾,然后左键单击【确定】按钮。
  
在这里插入图片描述

step3:查看菜单栏中是否多出一个选项【开发工具】。
  
在这里插入图片描述

  

[2]自定义一个VBA函数GetAdrs。

  
首先左键单击【开发工具】选项,然后左键单击【代码】功能区中的【Visual Basic编辑器】。右键单击【工程资源管理器】窗口,将鼠标指针移动至【插入】选项,左键单击二级菜单中的【模块】选项,插入【模块1】,并将以下代码复制粘贴到【模块1】的代码窗口后,最后关闭Visual Basic编辑器。
  
step1:左键单击【开发工具】选项,然后左键单击【代码】功能区中的【Visual Basic编辑器】。
  
在这里插入图片描述
  
step2:右键单击【工程资源管理器】窗口,将鼠标指针移动至【插入】选项,左键单击二级菜单中的【模块】选项,插入【模块1】,并将以下代码复制粘贴到【模块1】的代码窗口后,最后关闭Visual Basic编辑器。

Function GetAdrs(Rng)Application.Volatile TrueWith Rng.Hyperlinks(1)GetAdrs = IIf(.Address = "", .SubAddress, .Address)End With
End Function

在这里插入图片描述

  

[3]用函数GetAdrs获取网址。

  
首先左键单击选中【B2】单元格,键入自定义函数【=GetAdrs(A2)】,按回车键进行计算。将鼠标指针移动至【B2】单元格右下角,当鼠标指针变成【+】号后,长按鼠标左键并向下拖动进行公式填充。
  
至此,把Excel中的超链接快速变成网址已经讲解完毕,感兴趣的同学可以自己实现一遍图片。
  
限时免费进群】群内提供学习Python、玩转Python、风控建模、人工智能、数据分析相关招聘内推信息、优秀文章、学习视频,也可交流学习工作中遇到的相关问题。需要的朋友添加微信号19967879837,加时备注想进的群,比如风控建模。
  
参考文献
https://baike.baidu.com/
https://zhuanlan.zhihu.com/《数据科学与大数据技术》学校排名 - 知乎 (zhihu.com)

你可能感兴趣:
用Python绘制皮卡丘
用Python绘制词云图
Python人脸识别—我的眼里只有你
Python画好看的星空图(唯美的背景)
用Python中的py2neo库操作neo4j,搭建关联图谱
Python浪漫表白源码合集(爱心、玫瑰花、照片墙、星空下的告白)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/100845.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4.SpringCloud 基本架构

1.SpringCloud概述 Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,…

测试框架pytest教程(2)-用例依赖库-pytest-dependency

对于 pytest 的用例依赖管理,可以使用 pytest-dependency 插件。该插件提供了更多的依赖管理功能,使你能够更灵活地定义和控制测试用例之间的依赖关系。 Using pytest-dependency — pytest-dependency 0.5.1 documentation 安装 pytest-dependency 插…

【源码篇】ThreadLocal源码解析(主打的就是通俗易懂,言简意赅)

文章目录 ThreadLocal学习笔记前言1、TheadLocal基本介绍2、ThreadLocal基本使用3、体验ThreadLocal的优点3.1 ThreadLocal与synchronized的比较3.2、ThreadLoca的应用场景 4、ThreadLocal的内部原理4.1 ThreadLocal内部结构4.2 ThreadLocal常用方法分析4.2.1 set原理分析4.2.2…

云计算在IT领域的发展和应用

文章目录 云计算的发展历程云计算的核心概念云计算在IT领域的应用1. 基础设施即服务(IaaS):2. 平台即服务(PaaS):3. 软件即服务(SaaS): 云计算的拓展应用结论 &#x1f3…

学习maven工具

文章目录 🐒个人主页🏅JavaEE系列专栏📖前言:🏨maven工具产生的背景🦓maven简介🪀pom.xml文件(project object Model 项目对象模型) 🪂maven工具安装步骤两个前提:下载 m…

合宙Air724UG LuatOS-Air LVGL API--简介

为何是 LVGL LVGL 是一个开源的图形库,它提供了创建嵌入式 GUI 所需的一切,具有易于使用的图形元素、漂亮的视觉效果和低内存占用的特点。 LVGL特点: 强大的 控件 :按钮、图表、列表、滑动条、图像等 高级图形引擎:动…

[Docker] Portainer + nginx + AList 打造Docker操作三板斧

Portainer : Docker容器图形化管理系统 nginx: 反向代理利器 AList: 文件管理系统 目的: 依托Portainer 的图形管理界面,可视化的配置docker容器. AList再关联Docker各容器内部的配置文件,可视化配置,再配合Portainer重启,日志查看,命令行操作等.对于中小企业对容器化操作简…

ECharts配合Node.js爬虫实现数据可视化

数据可视化简介 可视化技术是将数据和信息以图形化的方式展示出来,以便更好地理解和分析。可视化技术通常使用各种图表、图形、动画和交互式效果来呈现数据。可视化技术有以下几个基本概念: 数据:可视化技术的基础是数据。数据可以是数字、文…

探索软件项目管理的本质及概念

什么是软件项目管理? 软件项目管理是指对软件项目从规划、组织、指挥、控制到最终交付的全过程进行有效管理的一种方法。它通过合理的资源分配、有效的沟通和高效的协作,确保软件项目能够按照预定的目标、时间和质量要求完成。在现代信息技术逐渐普及和…

rabbitmq的发布确认

生产者将信道设置成 confirm 模式,一旦信道进入 confirm 模式, 所有在该信道上面发布的 消息都将会被指派一个唯一的 ID (从 1 开始),一旦消息被投递到所有匹配的队列之后,broker 就会发送一个确认给生产者(包含消息的唯一 ID)&…

科技云报道:云计算下半场,公有云市场生变,私有云风景独好

科技云报道原创。 大数据、云计算、人工智能,组成了恢弘的万亿级科技市场。这三个领域,无论远观近观,都如此性感和魅力,让一代又一代创业者为之杀伐攻略。 然而高手过招往往一瞬之间便已胜负知晓,云计算市场的巨幕甫…

QTreeWidget——信号处理

文章目录 基本属性信号一、信号种类二、信号测试1、currentItemChanged、itemCollapsed、itemExpanded三个信号的测试2、itemActivated信号3、 itemChanged信号4、其余信号的测试代码(包含以上代码) 基本属性 信号 一、信号种类 //当前项发生变化时触…

sdk manager (ubuntu20.4) 安装

1、首先下载sdk manager 1.9.3 下载链接 https://www.baidu.com/link?urlVXJhUqxxhS3eFK3bOPTzi5LFl6ybeW3JwDY1CwANaPf1gvO3IxQKzY547NIe53x1blJxnAXg7FTRTvs-cnfnVa&wd&eqida22baa7b0004ca980000000664e2d426 当然要登录自己的账号才能成功下载,下载对应…

解决Spring mvc + JDK17@Resource无法使用的情况

问题描述 我在使用jdk17进行Spring mvc开发时发现 Resource用不了了。 原因 因为JDK版本升级的改动,在Jdk9~17环境下,搭建Springboot项目,会出现原有Resource(javax.annotation.Resource)不存在的问题,导…

安卓主板定制_电磁屏/电容屏安卓平板基于MTK联发科方案定制

定制化行业平板 在各行各业中的地位越来越重要,甚至在行业转型和发展中发挥着不可替代的作用。随着工业化社会的快速发展,工业生产对智控设备要求越来越高,运用的范畴也越来越普遍广泛,工业级平板就是其中一种应用广泛的设备。 新…

数据结构—树表的查找

7.3树表的查找 ​ 当表插入、删除操作频繁时,为维护表的有序表,需要移动表中很多记录。 ​ 改用动态查找表——几种特殊的树 ​ 表结构在查找过程中动态生成 ​ 对于给定值key ​ 若表中存在,则成功返回; ​ 否则&#xff0…

python 画二部图

1. 特色二部图 修改节点与边颜色、大小等 import networkx as nx import matplotlib.pyplot as plt plt.figure(设备-用户关系图, figsize(4, 6)) # 设置画布大小list_fid [1, 2, 3, 4] # 添加设备节点 list_uid ["a", "b", "c"] # 添加用…

live555server环境搭建

live555环境搭建详解(ubuntu18.04) 1.环境依赖 openssl可选安不安 安装(选择好版本) sudo apt-get update sudo apt-get install openssl sudo apt-get install libssl-dev使用头文件是否可用时编译测试时记得链接&#xff08…

Python功能制作之简单的3D特效

需要导入的库: pygame: 这是一个游戏开发库,用于创建多媒体应用程序,提供了处理图形、声音和输入的功能。 from pygame.locals import *: 导入pygame库中的常量和函数,用于处理事件和输入。 OpenGL.GL: 这是OpenGL的Python绑定…

通过树莓派上搭建WordPress博客网站,并内外通透远程访问【无公网IP内网穿透】

虎头金猫主页 在强者的眼中,没有最好,只有更好。我们是移动开发领域的优质创作者,同时也是阿里云专家博主。 ✨ 关注我们的主页,探索iOS开发的无限可能! 🔥我们与您分享最新的技术洞察和实战经验&#xff…