Tag: html解析

广告过滤服务器端

我正在开发一个Web应用程序,我在其中显示来自其他网站的HTML。 在显示最终版本之前,我想摆脱广告。 关于如何实现这一点的任何想法,建议? 它不需要是一个超级高效的过滤工具,我在考虑将adblockplus定义的一些filter移植到Ruby,并在Nokogiri的帮助下返回解析的文档。 假设我使用超级通配符filterad 。 这不是官方adblock,但为了简单起见,我会在这里使用它。 然后想法是删除任何属性与filter匹配的所有元素,例如: src=”http://ad.foo.com?my-ad.gif” href=”http://ad.foo.com” class=”annoying-ad”等 此filter的Nokogiri命令是: doc.xpath(“//*[@*[contains(., ‘ad’)]]”).each { |element| element.remove } 我为此页面应用了filter: 结果是: 不是那么糟糕,请注意全局通配符filter也删除了有效的元素,如标题,因为它们具有id=”masthead”等属性。 所以我认为这种方法对我的情况来说是好的,现在的问题是使用什么filter? 他们有一个巨大的filter列表 ,我不想迭代所有这些filter。 我正在考虑抓住前10-20并根据它解析文档,那里有最受欢迎的列表吗? 如果是这样,我一直无法找到它。

如何从网页下载动态生成的内容?

我正在尝试从动态生成的网页下载一些数据,因此使用wget不起作用。 页面是http://gaceta.diputados.gob.mx/SIL/Legislaturas/Listados.html我想下载显示的每个选项列表,可以在“Legislatura”字段中选择一旦下载我可以处理ruby中的数据。 只是想知道下载这个的最佳方式是什么,如果可以选择每个选项并下载。

在Ruby中寻找CSS解析器

我正在寻找一个CSS解析器,类似于这个在Java中寻找CSS解析器 ,但在Ruby中。 输入:HTML文档的一个元素。 输出:与该特定元素关联的所有样式。 我已经用Google搜索了,我也在这里搜索了Stackoverflow,但我能找到的只是这个Java解析器。

在ruby / rails中的html块中提取电子邮件地址

我正在创建一个解析器来防止来自tinyMCE的文本块中的垃圾邮件和收集电子邮件(所以它可能有也可能没有html标签) 我已经尝试了正则表达式,到目前为止这已成功: /\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[AZ]{2,4}\b/i 问题是,我需要忽略mailto hrefs的所有电子邮件地址。 例如: test@mail.com 应该只返回第二封电子邮件添加。 为了获得我正在做的事情的背景,我正在反转块中的电子邮件地址,所以上面的例子看起来像这样: moc.liam@tset 我目前的正则表达式的问题是它也取代了href中的那个。 有没有办法让我用一个正则表达式做到这一点? 或者我必须检查一个然后另一个? 有没有办法让我这样做只是通过使用gsub或我必须使用一些nokogiri / hpricot magicks和什么来解析mailtos? 提前致谢! 这是我的参考btw: so.com/questions/504860/extract-email-addresses-from-a-block-of-text so.com/questions/1376149/regexp-for-extracting-a-mailto-address 我也用这个测试: http://rubular.com/ 编辑 这是我目前的帮助代码: def email_obfuscator(text) text.gsub(/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[AZ]{2,4}\b/i) { |m| m = “#{m.reverse}” } end 结果如下: <a target="_self" href="mailto:moc.liamg@tset”>moc.liamg@tset

为什么Array.to_s返回括号?

对于数组,当我输入: puts array[0] ==> text 然而,当我打字 puts array[0].to_s ==> [“text”] 为什么括号和引号? 我错过了什么? ADDENDUM:我的代码看起来像这样 page = open(url) {|f| f.read } page_array = page.scan(/regex/) #pulls partial urls into an array partial_url = page_array[0].to_s full_url = base_url + partial_url #adds each partial url to a consistent base_url puts full_url 我得到的是: http://www.stackoverflow/[“questions”]