我想获取某个github用户的非forked仓库。目前我通过这个xpath查询得到了所有的仓库。
parser.xpath("//ul[@data-filterable-for='your-repos-filter']/li/div/div/h3/a/@href").map{|repository| ...}
重点是我需要过滤掉那些最后一个div的下一个 "兄弟姐妹 "的仓库。不 a span
,类似的东西。
parser.xpath("//ul[@data-filterable-for='your-repos-filter']/li/div/div/h3 and not span/a/@href").map{|repository| ...}
我要找的HTML是 下面 检查其中一个分叉仓库)。
<li class="col-12 d-flex width-full py-4 border-bottom public fork" itemprop="owns" itemscope itemtype="http://schema.org/Code">
<div class="col-10 col-lg-9 d-inline-block">
<div class="d-inline-block mb-1">
<h3 class="wb-break-all">
<a href="/DominikAngerer/rails-boilerplate" itemprop="name codeRepository" >
rails-boilerplate</a>
</h3>
<span class="f6 text-gray mb-1">
Forked from <a class="muted-link" href="/polomasta/rails-boilerplate">polomasta/rails-boilerplate</a>
</span>
</div>
<div>
<p class="col-9 d-inline-block text-gray mb-2 pr-4" itemprop="description">
Ruby on Rails Storyblok Starter Boilerplate
</p>
</div>
当不是一个分叉的仓库时,那些我正在寻找的,没有这样的 <span class="f6 text-gray mb-1">
是否可以这样查询,如果可以怎么查询?
你可以使用下面的XPath来选择非forked repositories的链接。
//div[@class="d-inline-block mb-1"][not(./span[contains(.,"Forked from")])]//@href