网页抓取数据百度百科(怎么没有提供PythonAPI?Python编写的吗教程视频对比)

优采云 发布时间: 2022-02-11 22:19

  网页抓取数据百度百科(怎么没有提供PythonAPI?Python编写的吗教程视频对比)

  前言

  有时在做统计的时候,往往很难把一个页面上的所有搜索结果都捕捉到,比如百度搜索,有时还有视频栏目、新闻栏目、百科栏目等等。普通爬虫无法爬取这些,因为它们的结构与普通的搜索结果完全不同。但是,百度蜘蛛可以。

  百度蜘蛛是一个可以爬取百度各种搜索结果的爬虫,用Python编写。它非常轻量级,但可以准确抓取各种类型的复杂结果,包括我们上面提到的视频、新闻、百科全书等。

  目前实现的功能包括百度网页搜索、百度图片搜索、百度知识搜索、百度视频搜索、百度信息搜索、百度图书馆搜索、百度体验搜索、百度百科搜索。

  此外,BaiduSpider还有多种不同的平台,目前有Python原生、Web UI和Web API,未来将推出BaiduSpider CLI,让您在命令行完成搜索。

  主要功能

  当然,以上只是它的一小部分功能。它最大的卖点是它爬取的所有搜索结果都没有广告!有了它,您不再需要安装任何 AdBlock、AdGuard!

  但是让我们尝试一下,看看它在抓取搜索结果时有多准确和完整。例如,让我们搜索 Python 教程视频:

  

  对比百度搜索页面:

  

  我们可以发现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=iTkBZk7h5QyDo6J8fmT4*敏*感*词*ufn7zJnEUhB0fXyBYBg334qXZ4GzWIpu-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,有两个key,results和total,分别代表所有搜索结果(list)和总页数(int)。

  最后

  看到这里,是不是已经想看这个神器了?什么?多少钱?不,它是免费的!它不仅是免费的,而且是开源的。不仅如此,它还提供了详细的文档(有些还在编写中),可以说是“装备齐全”。

  GitHub地址:

  文件地址:

  文中提到的网页版地址(目前仍处于Alpha阶段,请适度使用,仅用于演示目的):

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

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线