我正在编写一些代码,在一个页面上为两个css类刮一个页面我只是简单地使用Hpricot搜索方法:

webpage.search("body").search("div.first_class | div.second_class")

…对于找到的每个项,我都创建一个对象并将其放入数组中,除了一件事之外,这非常有用。
搜索将遍历整个html页面,并在每次遇到“.first_class”时将一个对象添加到数组中,然后再次遍历文档以查找“.second_class”,从而导致最终数组中包含所有搜索项的顺序不正确,即所有“.first_class”对象,然后是所有的.second_类对象。
有没有一种方法可以让我一次搜索文档,每次遇到指定的类时,都向数组中添加一个对象,给我一个项目数组,该数组的顺序与我正在抓取的页面中的顺序一致?
非常感谢您的帮助谢谢

最佳答案

请参阅“检查一些属性”一节:
http://wiki.github.com/why/hpricot/hpricot-challenge
您应该能够以与属性相同的方式堆叠元素。在2006年3月17日以后的hpricot版本中,这个特性显然是可能的……具有元素的示例如下:

doc.search("[@href][@type]")

关于ruby-on-rails - Hpricot CSS类搜索,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1117079/

10-13 01:15