仅忽略某些 div 中的元素
Ignore element inside only certain divs
我编写了一个基本的网络抓取工具,可以从网页中提取一小段文本并将它们放入列表中。我的问题是页面上出现了动态广告并弄乱了列表。
我抓取的页面是 Yelp 餐厅列表页面。
我提取了公司名称(公司名称)并将其添加到列表中,它工作正常,但是当广告出现时,抓取工具也提取了公司名称。
这是结构,但我不知道如何忽略 'AD element' 并只抓取正常的公司名称。我已经将其削减了很多并删除了 'unimportant' 元素。
这是一个广告:
<li class="yloca-search-result">
...
...
<a class="biz-name"...><span>San Lorenzo’s</span></a>
</li>
这是一个正常的清单:
<li class="regular-search-result">
...
...
<a class="biz-name"...><span>BigGrill</span></a>
</li>
我一直试图让 Nokogiri 忽略 <li class="yloca-search-result">
中的公司名称,而只 select regular-search-result
class 中的其他公司名称。
我想不通。至少有人能指出我正确的方向吗?可能吗?
我明白了。不难,就是看不到答案。
ad = doc3.at_css("li.yloca-search-result")
ad.remove
我编写了一个基本的网络抓取工具,可以从网页中提取一小段文本并将它们放入列表中。我的问题是页面上出现了动态广告并弄乱了列表。 我抓取的页面是 Yelp 餐厅列表页面。
我提取了公司名称(公司名称)并将其添加到列表中,它工作正常,但是当广告出现时,抓取工具也提取了公司名称。
这是结构,但我不知道如何忽略 'AD element' 并只抓取正常的公司名称。我已经将其削减了很多并删除了 'unimportant' 元素。
这是一个广告:
<li class="yloca-search-result">
...
...
<a class="biz-name"...><span>San Lorenzo’s</span></a>
</li>
这是一个正常的清单:
<li class="regular-search-result">
...
...
<a class="biz-name"...><span>BigGrill</span></a>
</li>
我一直试图让 Nokogiri 忽略 <li class="yloca-search-result">
中的公司名称,而只 select regular-search-result
class 中的其他公司名称。
我想不通。至少有人能指出我正确的方向吗?可能吗?
我明白了。不难,就是看不到答案。
ad = doc3.at_css("li.yloca-search-result")
ad.remove