当前位置: 首页 > news >正文

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.lryc.cn/news/132228.html

相关文章:

  • Crimson:高性能,高扩展的新一代 Ceph OSD
  • 【websocket】websocket-client 与 websockets
  • Qt快速学习(一)--对象,信号和槽
  • Qt6之如何为QDialog添加最大化和最小化按钮
  • 攻防世界-warmup
  • 02__models
  • MyBatis入门配置及CURD实现
  • 《游戏编程模式》学习笔记(五)原型模式 Prototype Pattern
  • ansible案列之LNMP分布式剧本
  • React2023电商项目实战 - 1.项目搭建
  • 数据库连接池(c3p0和德鲁伊)
  • ARM--day6(实现字符、字符串收发的代码和现象,分析RCC、GPIO、UART章节)
  • 2023牛客暑期多校训练营9 B.Semi-Puzzle: Brain Storm
  • mysql中的窗口函数
  • 【双指针】经典数组双指针题LeetCode
  • 极智嘉x吉利汽车 x京东物流,引领汽车行业智慧物流新变革!
  • RK3588平台开发系列讲解(AI 篇)RKNN C API 详细说明
  • 【基础】Android Handler
  • c语言实现MD5算法
  • Apache Doris 2.0.0 特性分析
  • 如何做H5性能测试?
  • 【Docker】Docker Desktop配置资源:cpu、内存等(windows环境下)
  • 8.2.tensorRT高级(3)封装系列-内存管理的封装,内存的复用
  • Keepalived入门指南:实现故障转移和负载均衡
  • cuOSD(CUDA On-Screen Display Library)库的学习
  • c++函数指针基本用法
  • Java创建对象的几种方式
  • Docker实战专栏简介
  • 解放数据库,实时数据同步利器:Alibaba Canal
  • 机器学习基础之《分类算法(3)—模型选择与调优》