全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 470|回复: 3
打印 上一主题 下一主题

linux有办法批量提取文件中的title吗?

[复制链接]
跳转到指定楼层
1#
发表于 2023-2-27 22:47:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
比如a目录下有100个html。提取这100个html文件名和对应的title标签里的文字,然后保存到txt里。类似这样
  1. 1.html  全球主机论坛
  2. 2.html  百度
  3. 3.html  网易
复制代码

自己写了个小爬虫,通过浏览器抓取,奈何文件太多。效率太低。在ssh里能实现吗?
2#
发表于 2023-2-27 22:48:45 来自手机 | 只看该作者
ls grep awk应该可以搞定
3#
发表于 2023-2-27 22:52:31 来自手机 | 只看该作者
可以使用grep和sed命令来提取文件名和对应的title标签里的文字,并使用循环来遍历所有的html文件。  以下是一个可能的Shell脚本示例:  #!/bin/bash  # 定义保存结果的文件名 result_file="titles.txt"  # 清空文件内容 > $result_file  # 遍历a目录下的所有html文件 for file in a/*.html do   # 提取文件名   filename=$(basename "$file")    # 提取title标签里的文字   title=$(grep -oP '(?<=<title>).*?(?=</title>)' "$file" | sed 's/&nbsp;/ /g')    # 将结果写入文件   echo "$filename $title" >> "$result_file" done   该脚本首先定义了一个保存结果的文件名,然后使用>符号清空文件内容,以便在写入结果之前始终保持该文件为空。接下来,使用循环遍历a目录下的所有html文件。对于每个文件,使用basename命令提取文件名,并使用grep命令提取title标签里的文字,再使用sed命令将&nbsp;替换为普通空格。最后,将文件名和title内容写入保存结果的文件中。  注意:该脚本假设每个html文件都有且只有一个title标签,并且该标签的内容不包含任何换行符。如果这些假设不成立,脚本可能需要做一些调整。
4#
 楼主| 发表于 2023-2-27 22:55:23 | 只看该作者
baipiaoking 发表于 2023-2-27 22:52
可以使用grep和sed命令来提取文件名和对应的title标签里的文字,并使用循环来遍历所有的html文件。  以下是 ...

我的chatgpt网页这会打不开。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-12-9 07:46 , Processed in 0.063199 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表