我有一个基本的网页刮板,它从网页中拉出一小段文本并将它们放入列表中。我的问题是,有动态广告出现在页面上,并弄乱了列表。 我正在刮的页面是一个Yelp餐厅列表页面。只忽略某些div内的元素
我拔出biz-name(商业名称)并将其添加到列表中,并且它工作正常,但是当广告出现时,scraper也会拉动biz-name。
这是结构,但我不知道如何忽略'AD元素',只是刮普通的商业名称。我削减了很多,删除了“不重要”的元素。
这是一则广告:
<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">
内,只能选择别人在regular-search-result
类中。 我无法弄清楚。至少有人能指出我正确的方向吗?可能吗?
您知道Yelp有一个[API](https://www.yelp.com/developers/documentation/v2/overview)旨在帮助您避免刮页吗?我建议利用它。 –
@theTinMan我试过了,但它没有给出相同的结果,它仅限于许多结果。这显然更容易使用,但刮擦给了我更好的结果。 – boogiewonder
请注意,他们的TOS可能禁止刮擦,因此您很有可能被禁止。 –