【问题标题】:How to limit the number of results at the tag level using pup?如何使用 pup 限制标签级别的结果数量?
【发布时间】:2014-10-29 16:28:17
【问题描述】:

简介

有没有办法使用pup 来限制结果的数量,而不是整体,而是在标签级别?

背景故事/用例

自从我了解小狗以来,我一直很着迷。我一直在思考新的用例。今天早上我想用它来抓取ESPN的最新头条。

ESPN 似乎有一个像这样的无序列表:<ul class="headlines">,然后是一堆列表项。

一个简单的解决方案是:

$ curl -s -S http://espn.go.com/ | pup .headlines a text{}

对吗?但是,正如您所看到的,有时每行每个主题都有多个链接与备用作者,因此您最终会得到像“Low”、“Anande”、“Stark”和“Dinich”这样的结果(ESPN 的姓氏作者)。

理想情况下,我想做这样的事情:

$ curl -s -S http://espn.go.com/ | pup .headlines li a slice{:1} text{}

但这只会返回第一个结果。 :\

每个<li> 有多个<a> 标签,所以我想检索所有<li> 项目,但将<a> 标签的数量限制为每个<li> 1 个。这可能吗?

【问题讨论】:

    标签: parsing command-line css-selectors html-parsing pup


    【解决方案1】:
    $ curl -s -S http://espn.go.com/ | pup '.headlines li a:first-of-type text{}'
    

    【讨论】:

    • 太棒了!谢谢埃里克! :)
    • @LoisaidaSam 几个星期后,但 pup 现在有了伪代码,可以干净利落地实现这一目标
    猜你喜欢
    • 2015-08-16
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-03
    相关资源
    最近更新 更多