gpt4 book ai didi

ruby - 如何在 Ruby 上获取包含所有对象的 HTML 页面

转载 作者:数据小太阳 更新时间:2023-10-29 08:42:09 25 4
gpt4 key购买 nike

我需要获取包含所有对象(样式表、javascript、图像)的 HTML 页面并将数据存储在数据库中。可以通过简单地获取 src 属性中列出的文件来实现这一点,但也许有人可以为此建议任何帮助 gem 。

此外,有没有办法将所有这些文件打包成一个文件(如 web archieve),大多数浏览器都可以打开?

谢谢

最佳答案

你可以使用 mechanize做这个工作:

require "rubygems"
require "mechanize"

url = "http://stackoverflow.com/"
agent = WWW::Mechanize.new
page = agent.get(url)


page.search('img[@src]').each do |image|
src = image["src"]
image_file = agent.get(src) if src
# Store image_file data it in database ...
end

page.search('link[rel="stylesheet"]').each do |css|
src = css["src"]
css_file = agent.get(src) if src
# Store css_file data it in database ...
end

page.search('script[type="text/javascript"]').each do |script|
src = script["src"]
script_file = agent.get(src) if src
# Store script_file data it in database ...
end

您仍然需要处理异常并修复具有相关 src 属性的资源。但这应该可以完成工作。但是,此解决方案不会获取样式表中引用的图像。

关于ruby - 如何在 Ruby 上获取包含所有对象的 HTML 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1136614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com