一个能够屏蔽百度广告的爬虫:BaiduSpider 您所在的位置:网站首页 百度广告过滤功能 一个能够屏蔽百度广告的爬虫:BaiduSpider

一个能够屏蔽百度广告的爬虫:BaiduSpider

2024-07-06 02:19| 来源: 网络整理| 查看: 265

前言

有时候做数据统计的时候,常常很难大而全地抓取一个页面上所有的搜索结果,比如百度网页搜索,有时候会有视频栏,新闻栏,百科栏,等等。普通的爬虫都不能爬到这些,因为它们的结构跟普通搜索结果是完全不一样的。但是,BaiduSpider可以。

BaiduSpider是一个能够抓取百度各类搜索结果的爬虫,使用Python编写。它十分轻量,但是却能够准确地爬取各种类型复杂的结果,包括我们上面所说的视频,新闻,百科等。

目前实现的功能有百度网页搜索,百度图片搜索,百度知道搜索,百度视频搜索,百度资讯搜索,百度文库搜索,百度经验搜索和百度百科搜索。

除此以外,BaiduSpider还拥有多种不同的平台,目前有Python原生,Web UI和Web API,并且接下来还会推出BaiduSpider CLI,让你在命令行里完成搜索。

主要功能

当然,上面才是它的一点点功能,它最大的卖点在于,它所爬取的所有搜索结果都没有广告!有了它,你就再也不用去安装什么AdBlock,AdGuard啦!

但是,让我们先来小试牛刀,看看它爬取搜索结果的准确度和完整度怎么样吧。比如说,我们来搜索一下Python教程视频:在这里插入图片描述 对比一下百度搜索的页面:

在这里插入图片描述 我们可以发现,BaiduSpider爬取到的信息是和百度一模一样的(除去百度最后一个是广告)!可见BaiduSpider的准确度。

广告屏蔽

接下来,我们来看看它处理广告的能力:在这里插入图片描述 几乎一半都是广告。。。再看看BaiduSpider的:在这里插入图片描述 可以很直接地看出BaiduSpider屏蔽了所有右下角带有广告标签的搜索结果,是不是十分大快人心……

基本功:Python原生

说了这么多,展示的都是网页端的结果,没有一个是能通过Python调用的。你可能会问,这玩意不是Python编写的吗?怎么没有提供Python API?

别急,接下来我们就来介绍它最常用的部分——BaiduSpider Python原生。

比如,我想要搜索关于git的结果,通过Python API调用就只有这么几行代码:

from baiduspider import BaiduSpider from pprint import pprint spider = BaiduSpider() pprint(spider.search_web('git'))

没错,BaiduSpider也发布了PyPI包!让我们看一下这段代码的运行结果如何:

{'results': [{'result': 100000000, 'type': 'total'}, {'results': ['git教程', 'github中文官网网页', '小奶猫回家地址github', 'git新手教程', 'git通俗一点是干什么的', 'github官网切换中文', 'git提交代码的正确步骤', 'Git使用教程', '游戏源码'], 'type': 'related'}, {'des': 'Git is a free and open source distributed version ' 'control system designed to handle everything from small ' 'to very larg...', 'origin': 'git-scm.com/', 'time': None, 'title': 'git官网', 'type': 'result', 'url': 'http://www.baidu.com/link?url=io2eYwa4OovMW42jQtlgSYuRE1emLSXzGNikMbmxYTe'}, {'des': 'Git 教程 Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 ' 'Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码...', 'origin': 'www.runoob.com/git/git-tutori....', 'time': None, 'title': 'Git 教程 | 菜鸟教程', 'type': 'result', 'url': 'http://www.baidu.com/link?url=iTkBZk7h5QyDo6J8fmT4c4ufn7zJnEUhB0fXyBYBg334qXZ4GzWIpu-eV4hqjpk3hYjFlNZZwUPcO9u3nH8xL_'}, {'des': 'Git 教程 Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 ' 'Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码...', 'origin': None, 'time': None, 'title': 'git安装相关博客', 'type': 'result', 'url': 'http://www.baidu.com/link?url=Q-zaj4E2-_jaO-ZR5DTM2U8r8ZH3_8JuPtsKgXllLcVQW-4H40hBzIFqcgoByjmrN-jr7_WtIP9Cp55C-nLR2A4LNtpcHCgrBjCs0bUPZHC'}, {'des': 'If you already have Git installed, you can get the ' 'latest development version via Git itself: git clone ' 'https://github.com/git/git ...', 'origin': 'www.git-scm.com/download/', 'time': None, 'title': 'Git - Downloads', 'type': 'result', 'url': 'http://www.baidu.com/link?url=ITh8cnvqErJCQx9ICLrJed8f5hGCEU5JLpVoK1MsUPqqsl5sPnlhfCL8OjxuQLSN'}, {'des': 'If you already have Git installed, you can get the ' 'latest development version via Git itself: git clone ' 'https://github.com/git/git ...', 'origin': None, 'time': None, 'title': 'Git-开源的分布式版本控制系统', 'type': 'result', 'url': 'http://www.baidu.com/link?url=Tft8L7Dd71mQxbWpuJO7SpT2HR2RDgkQLNSEnk_MxaPQ6ZML0TUpgflG9DOvTGzND3olfU9ScMKmPDKRLO_l33vHKTGNMmwv89PgOFiVmP_'}, {'des': 'Git Source Code Mirror - This is a publish-only ' 'repository and all pull requests are ignored. Please ' 'follow Documentation/SubmittingPatches procedure for ...', 'origin': 'github', 'time': None, 'title': 'GitHub - git/git: Git Source Code Mirror - This is a ' 'p...', 'type': 'result', 'url': 'http://www.baidu.com/link?url=KtsMqw1oBIWWlkZDnq2Y5P1tdu33Uy0n9y5ZYUufiG_ab_m6ky41KrZUkYbXf2gC'}, {'des': 'git Git Source Code Mirror - This is a publish-only ' 'repository and all pull requests are ignored. Please ' 'follow Documentation/SubmittingPat...', 'origin': 'github', 'time': '2021年1月2日', 'title': 'Git · GitHub', 'type': 'result', 'url': 'http://www.baidu.com/link?url=rxFpc1Ymkb4RTcvH19Qg1VEcf62S5T6eMpHw7v3Xz5W'}, {'des': '最近要与部门同事一起做技术分享,我选择了Git,因为Git ' '是一种在全球范围都广受欢迎的版本控制系统。在开发过程中,为了跟踪代码,文档,项目等信息中的变化,版本控制...', 'origin': '博客园', 'time': None, 'title': '一个小时学会Git - 张果 - 博客园', 'type': 'result', 'url': 'http://www.baidu.com/link?url=q2JO9SIY9y_8Cvs8mMfkXKUF1pY8HCaS0v1FYPQhzvOncl4HxlUXoVuJXsds_WdG3ibcwYf7JNwuWWGhP00xF_'}, {'des': 'We bring the awesome Git VCS to Windows', 'origin': 'gitforwindows.org/', 'time': None, 'title': '这里下载git - Git for Windows', 'type': 'result', 'url': 'http://www.baidu.com/link?url=LJMKB611S4QxZWM5lSLUL2K0ta4zYMZUtzrdx6bvixWSUDtXkBg1Izu5M2CoU3yP'}], 'total': 10}

可以看出,所有结果都已经分好了类(此处主要是普通的搜索结果),并且还有总计搜索结果数、总页数等附加信息。所有BaiduSpider方法的返回值都是一个dict,里面有results和total两个键,分别代表所有搜索结果(list),和总页数(int)。

最后

看到这里,你是不是已经想见识一下这个神器了呢?什么?多少钱?不,它是免费的!它不仅免费,而且还开源呢。不仅如此,它也提供详细的文档(部分还在撰写中),可以说是“配套齐全”啦。

GitHub地址:

https://github.com/BaiduSpider/BaiduSpider

文档地址:

https://baiduspider.github.io

文中提到的网页版地址(目前还在Alpha阶段,请适量使用,仅作为demo用途):https://baidus.netlify.app

视频可查看原文链接:一个能够屏蔽百度广告的爬虫:BaiduSpider



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有