简而言之:
有没有办法使用 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{}
但这只返回第一个结果。 :\
有多个<a>
每个 <li>
的标签,所以我想检索所有 <li>
项,但限制 <a>
的数量标签为 1 个 <li>
。这可能吗?
最佳答案
$ curl -s -S http://espn.go.com/ | pup '.headlines li a:first-of-type text{}'
关于parsing - 如何使用pup限制标签级别的结果数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26635752/