如何避免selenium搜索过程中广告信息的干扰

我们在使用百度进行搜索时, 往往会有大量的广告信息在搜索结果中显示
一般百度搜索结果页默认搜索结果条数是10条, 而真实的搜索结果中除了10条结果外还会存在大量的广告条目.
我们手动搜索时是无法避免不去看广告的, 但我们在使用python selenium去爬取页面结果时是有方法过滤掉这些恼人的广告的

当我们去看百度搜索结果页的元素信息的时候会发现一个很有意思的事

如何避免selenium搜索过程中广告信息的干扰_第1张图片
image

这是百度搜索结果的信息, 我们会发现在div id = 'content_left'下有很多div标签, 这些div标签的class有的相同, 有的不同, 其中class = 'result c-container'的9个就是 百度真正搜索出的结果.
这里有个问题, 为什么是9个?不是有10个搜索结果吗?
这是由于百度搜索结果中有一个结果的class != 'result c-container', 呵呵, 这是哪个结果这么特立独行呢?
分析后发下这个结果词条是百度百科, 百度百科的class = 'result-op c-container xpath-log' 是不是很与众不同.
这也为我们屏蔽百度百科的结果找到了途径.
另外我们会发现, 上述10条结果的id 是从1 到10的, 我们也可以用id来获取这10条结果. 或通过class 来得到9条结果.

那么问题来了, 那些广告的class又有何不同呢?
广告的class = 'FAcBhn' 而且, 广告的id也是500x的, 这就为我们屏蔽广告结果提供了很大的便利.

小结:
屏蔽广告的方案:

  1. 使用class = 'result'来获取能获取到的所有搜索结果, 只是未必能获取全部
  2. 使用id 来获取所有搜索结果.

获取广告信息:
使用class = 'FAcBhn' 来获取广告信息

你可能感兴趣的:(如何避免selenium搜索过程中广告信息的干扰)