Python实现一键提取页面所有链接

 更新时间:2025年08月03日 10:46:36   作者:Kyln.Wu  
这篇文章主要为大家详细介绍了如何使用Python实现一键提取页面所有链接,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

链接提取, 正则神器, 批量文本, 小白脚本

故事开场

周一上午,老板甩给你一个 200 页的会议记录 TXT:“把里面所有网址整理成 Excel,午饭前给我!”

你打开文档一看,密密麻麻全是文字,网址藏在各个角落,复制粘贴能点到手抽筋。

这时,你从抽屉掏出“小白瑞士军刀”——links_extractor.py

把它拖到 TXT 文件上,双击,三秒后自动生成 xxx_links.txt,所有网址排队站好。

你直接复制进 Excel,泡杯咖啡的功夫就交差。痛点解决:再也不用肉眼找链接,省时 99%。

代码解析

功能块 1:把文件读进来

像翻书一样,先把整本 TXT 读进内存,后面才好找东西。

def read_text_file(file_path):
    with open(file_path, encoding='utf-8') as f:
        return f.read()

encoding='utf-8' 防止中文乱码,小白也能放心用。

功能块 2:用“网址捕手”抓链接

正则表达式就像一张渔网,http 开头或 www 开头都能一网打尽。

import re
def extract_urls(text):
    pattern = r"(?:(?:https?|ftp):\/\/)?[\w/\-?=%.]+\.[\w/\-?=%.]+"
    return re.findall(pattern, text)

re.findall 一次性把所有匹配结果装进列表,方便后面输出。

功能块 3:把结果写成新文件

抓到的链接按行写进 原文件名_links.txt,清爽不覆盖原文件。

def export_urls(urls, file_path):
    with open(file_path.replace(".txt", "_links.txt"), "w", encoding='utf-8') as f:
        f.write("\n".join(urls))

一行一个链接,Excel 直接粘贴即可。

功能块 4:一键启动入口

把上面三块拼起来,双击脚本就能跑。

if __name__ == "__main__":
    import sys
    get_urls(sys.argv[1])

运行方式:

python links_extractor.py 会议记录.txt

如果还想更厉害

扩展点子 1:批量扫描整个文件夹

一次性抓完目录里所有 TXT,结果合并到一张表。

import glob, os
all_urls = []
for txt_file in glob.glob("*.txt"):
    all_urls.extend(extract_urls(read_text_file(txt_file)))
with open("all_links.txt", "w", encoding='utf-8') as f:
    f.write("\n".join(set(all_urls)))  # set 去重

双击后,整个文件夹的网址全进 all_links.txt

扩展点子 2:加个迷你窗口,拖文件就能跑

tkinter 做 GUI,小白再也不用敲命令。

import tkinter as tk
from tkinter.filedialog import askopenfilename

root = tk.Tk()
root.withdraw()  # 隐藏主窗口
file = askopenfilename(filetypes=[("Text files", "*.txt")])
if file:
    get_urls(file)
    tk.messagebox.showinfo("完成", f"已生成 {file}_links.txt")

双击脚本→弹窗选文件→秒出结果,全程鼠标操作。

方法补充

使用Python一次性批量下载网页内所有链接

完整代码

import os
import requests
from bs4 import BeautifulSoup
 
# 目标网页的URL
url = "https://"  # 请将此处替换为实际的网页URL
# 指定下载文件的文件夹路径
# 使用原始字符串
download_folder = r"D:\"
# 或者使用双反斜杠
# download_folder = "D:\\AScholarFolder\\"
# 创建下载文件夹(如果不存在)
if not os.path.exists(download_folder):
    os.makedirs(download_folder)
# 获取网页内容
response = requests.get(url)
if response.status_code == 200:
    soup = BeautifulSoup(response.text, 'html.parser')
    # 找到所有的 <a> 标签
    for a_tag in soup.find_all('a'):
        href = a_tag.get('href')
        if href:
            # 下载文件
            file_name = href.split('/')[-1]
            file_path = os.path.join(download_folder, file_name)
            try:
                file_response = requests.get(href)
                if file_response.status_code == 200:
                    with open(file_path, 'wb') as file:
                        file.write(file_response.content)
                    print(f"已下载: {file_name}")
                else:
                    print(f"下载失败: {href}")
            except:
                print(f"下载失败: {href}")
else:
    print(f"无法获取网页内容: {url}")

总结

links_extractor.py 这把 30 行瑞士军刀,用三招“读文本、抓链接、写文件”帮你把散落各处的网址瞬间归队。

再加批量扫描或迷你窗口,它就从命令行小工具升级为效率神器。

下次老板再甩 TXT,你只需双击脚本,喝杯水的功夫就交卷!

到此这篇关于Python实现一键提取页面所有链接的文章就介绍到这了,更多相关Python提取页面链接内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用matplotlib动态刷新指定曲线实例

    使用matplotlib动态刷新指定曲线实例

    这篇文章主要介绍了使用matplotlib动态刷新指定曲线实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Pandas之MultiIndex对象的示例详解

    Pandas之MultiIndex对象的示例详解

    这篇文章主要介绍了Pandas之MultiIndex对象的示例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • 实现python版本的按任意键继续/退出

    实现python版本的按任意键继续/退出

    本文给大家简单介绍了在windows以及linux下实现python版本的按任意键继续/退出功能,非常的简单实用,linux下稍微复杂些,有需要的小伙伴可以参考下
    2016-09-09
  • Python抛出引发异常(raise)知识点总结

    Python抛出引发异常(raise)知识点总结

    在本篇文章里小编给大家整理了关于Python抛出引发异常(raise)知识点总结内容,有需要的朋友们可以学习参考下。
    2021-06-06
  • Python读取DataFrame的某行或某列的方法实现

    Python读取DataFrame的某行或某列的方法实现

    Dataframe是Python中一种重要的数据处理工具,它能够以表格形式存储并处理数据,本文主要介绍了Python读取DataFrame的某行或某列的方法实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-04-04
  • python变量赋值机制踩坑记录

    python变量赋值机制踩坑记录

    这篇文章主要介绍了python变量赋值机制踩坑记录,我们都知道python有深拷贝和浅拷贝,但变量赋值又是什么机制呢?这是个容易被忽略却又极易踩坑的点,下面我们来一探究竟,需要的朋友可以参考一下
    2022-02-02
  • Python实现快速排序算法及去重的快速排序的简单示例

    Python实现快速排序算法及去重的快速排序的简单示例

    quick sort快速排序是一种再基础不过的排序算法,使用Python代码写起来相当简洁,这里我们就来看一下Python实现快速排序算法及去重的快速排序的简单示例:
    2016-06-06
  • Python-split()函数实例用法讲解

    Python-split()函数实例用法讲解

    在本篇文章里小编给大家整理的是一篇关于Python-split()函数实例用法讲解,有兴趣的朋友们可以学习下。
    2020-12-12
  • Python写了个疫情信息快速查看工具实例代码

    Python写了个疫情信息快速查看工具实例代码

    本次使用PyQt5开发了一款疫情信息快速查看工具,实现了多个数据源的查看,代码量不大,功能相当于浏览器,只是限定了一些特定网址,这篇文章主要介绍了Python写了个疫情信息快速查看工具,需要的朋友可以参考下
    2022-11-11
  • Python基础之进程详解

    Python基础之进程详解

    今天带大家学习Python基础知识,文中对python进程作了详细的介绍,对正在学习python基础的小伙伴们有很好地帮助,需要的朋友可以参考下
    2021-05-05

最新评论