主页

使用ruby脚本把网站的http请求都抓取到本地

2024-09-20 10:24AM

ruby脚本代码内容如下:

require 'net/http'
require 'uri'

urls = %w{
  https://cdn.prod.website-files.com/65e5b22cf7f0480a007420fc/css/ewbetatest.webflow.9089ad39c.css
  https://cdn.jsdelivr.net/npm/@finsweet/3dglobes@1/styles.min.css
}

urls.each do |url|
  local_file_name = url.split('/').last
  command = %Q{wget #{url} -O #{local_file_name}}
  
  system(command)
end

代码解释:

1.引入库

require 'net/http':引入 Ruby 的 net/http 库,它提供了用于执行 HTTP 请求的功能。

require 'uri':引入 Ruby 的 uri 库,用于处理 URL 和 URI 的解析。

2. 定义 URL 列表

urls 是一个数组,使用 %w{} 语法定义了一系列 URL。这些 URL 是您希望下载的文件的地址。

3.遍历URL列表

urls.each do |url|:对 urls 数组中的每个 URL 执行块中的代码。

3.1 获取本地文件名

local_file_name = url.split('/').last

使用 split('/') 方法将 URL 按照 / 符号分割,然后取最后一部分(即文件名)。例如,对于 URL https://cdn.prod.website-files.com/.../ewbetatest.webflow.9089ad39c.css,得到的 local_file_name 将是 ewbetatest.webflow.9089ad39c.css

3.2 构建命令

command = %Q{wget #{url} -O #{local_file_name}}

使用 %Q{} 语法构建一个字符串,形成一个 wget 命令。wget 是一个常用的命令行工具,用于从网络下载文件。-O 选项指定输出文件的名称。

command 字符串的内容类似于 wget https://cdn.prod.website-files.com/... -O ewbetatest.webflow.9089ad39c.css

3.3 执行命令

system(command)

使用 system(command) 方法执行构建的 wget 命令。这将启动一个新的进程来运行该命令,并在命令完成后返回控制权。

这个脚本的作用是:

1.定义一组 URL。

2.遍历每个 URL。

3.从每个 URL 中提取文件名。

4.构建并执行 wget 命令,下载文件到当前目录中。

注意:

1.依赖于外部工具:该脚本依赖 wget 工具。确保在运行此脚本的环境中已安装 wget

2.错误处理:脚本没有处理下载失败的情况,可以考虑添加错误处理逻辑,确保下载成功与否的反馈。

3.性能问题:对于大量 URL,可能会出现性能瓶颈,可以考虑使用并发下载的方式。

 

返回>>

登录

请登录后再发表评论。

评论列表:

目前还没有人发表评论