Javascript 如何在html中自动选择某些代码?

Javascript 如何在html中自动选择某些代码?,javascript,html,ruby,dom,automation,Javascript,Html,Ruby,Dom,Automation,嗨,我有一个关于在HTML中自动选择某些内容的问题。因此,如果我们只将网页保存为html,那么我们将获得html代码以及其他样式表和javascript代码。但是,我只想提取和之间的HTML代码,然后创建一个包含提取的HTML代码的新HTML文件。有没有可能的办法?示例代码如下所示: <html> <script src='.....'> </script> <style> ... </style> <div class='hea

嗨,我有一个关于在HTML中自动选择某些内容的问题。因此,如果我们只将网页保存为html,那么我们将获得html代码以及其他样式表和javascript代码。但是,我只想提取
之间的HTML代码,然后创建一个包含提取的HTML代码的新HTML文件。有没有可能的办法?示例代码如下所示:

<html>
<script src='.....'>
</script>
<style>
...
</style>
<div class='header-outer'>
<div class='header-title'>
<div class='post-content' itemprop='articleBody'>
<p>content we want</p>
</div>
</div></div>
<div class='footer'>
</div>
</html>

...
我们想要的内容

当我打字的时候,我想到了javascript,它似乎能够操纵HTMLDOM元素。Ruby能做到吗?我可以使用javascript或Ruby生成一个新的干净html,它只包含
之间的内容吗?然而,至于如何编写实际的代码,我没有任何线索


有人知道吗?非常感谢你

您希望使用正则表达式。例如:

//The "m" means multi-line
var regEx = /<div class='post-content' itemprop='articleBody'>([\s\S]*?)<\/div>/m;

//The content (you'll put the javascript at the bottom
var bodyCode = document.body.innerHTML;

var match = bodyCode.match( regEx );

//Prints to the console
console.dir( match );
//m”表示多行
var regEx=/([\s\s]*?)/m;
//内容(您将把javascript放在底部)
var bodyCode=document.body.innerHTML;
var match=bodyCode.match(regEx);
//打印到控制台
console.dir(匹配);

你可以在这里看到这一点:

我不太确定你问的是什么,但我想试一下

Ruby可以修改网页上的DOM吗

简短的回答是,不。浏览器不知道如何运行Ruby。他们知道如何运行javascript,所以这通常用于实时DOM操作

我可以生成一个新的干净的html吗

是吗?归根结底,HTML只是一个特定格式的字符串。如果您想从该页面下载源代码并在
标记中找到所有内容,有几种方法可以实现这一点。最好的可能是
nokogiri
gem,它是一个ruby HTML解析器。您可以为它提供一个字符串(从文件或其他文件中)表示旧页并删除所需内容的。执行此操作的方式如下:

require 'nokogiri'

page = Nokogiri::HTML(open("https://googleblog.blogspot.com"))
# finds the first child of the <div class="post-content"> element
text = page.css('.post-content')[0].text 
需要“nokogiri”
page=Nokogiri::HTML(打开https://googleblog.blogspot.com"))
#查找元素的第一个子元素
text=page.css('.post content')[0]。text

我相信这会为您提供所需的文本。可以找到更详细的nokogiri说明。

html和用例的来源是什么?示例html:查看源代码:请不要检查元素,而是查看源代码或仅将网页另存为html。不确定如何说明用例…但我只需要查看内容在上面提到的包含博客内容的标签之间…谢谢!这并不能解释你想做什么。有很多方法可以做你想做的事情,方法取决于用例。他们刚刚编辑了我的问题。这说明了用例吗?在所选内容上的ID标签可能有用,或者有一个XML r准备做这项工作。谢谢你,唐。这是个好主意……但是我以后应该如何提取我想要的内容并将其写入新的HTML?@Penny我不会完全为你做这件事(这有什么乐趣?)但是你可以做的是复制控制台中打印出来的内容并在新的HTML页面中使用。嗨,唐,我的目的是自动化整个过程…如果将我想要的代码复制并粘贴到新的HTML页面中,我当然可以这样做,我甚至不需要使用正则表达式。但是,批量这样做是不现实的…@Penny如果你想自动吃了它,仍然使用正则表达式,但使用php(您将在Apache web服务器上运行此操作),然后通过
curl
加载您想要的网页,并将内容提供给正则表达式谢谢!我将查看Nokogiri文档,看看是否可以在那里找到一些内容。