只忽略某些div中的元素



我编写了一个基本的web scraper,它从网页中提取短文本部分并将其放入列表中。我的问题是,页面上出现了动态广告,把列表弄得一团糟。我正在抓取的页面是Yelp餐厅的列表页面。

我取出商业名称(企业名称)并将其添加到列表中,效果很好,但当广告出现时,刮刀也会拉出商业名称。

这就是结构,但我不知道如何忽略"AD元素",只抓取正常的企业名称。我把它删减了很多,去掉了"不重要"的元素。

这是一个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类中的其他名称。我想不通。至少有人能给我指一个正确的方向吗?有可能吗?

我想明白了。这并不难,但我就是看不到答案。

ad = doc3.at_css("li.yloca-search-result")
ad.remove

相关内容

  • 没有找到相关文章