我编写了一个基本的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