【G百科】:带你逛 Github 上那些牛 x 的项目
每周,痴海会精心挑选一个 Github 上牛 x 的开源项目。
通过项目讲解,源码解析,让你知道原来编程还可以这样逆天操作。
今天是 G 百科系列文章第一篇,主角就是最近 Github 上非常的火爆的爬虫库:InfoSpider。
不用写任何一行代码,就能爬取 26 个网站的数据!
InfoSpider 是什么?
InfoSpider 要怎样使用?
InfoSpider 是如何编写?
今天这篇文章就带大家详细的了解,这个数据百宝库!
1 一个神奇的爬虫工具
InfoSpider:一个集众多数据源于一身的爬虫工具箱
Github Star:3.6K
特点:安全可靠、使用简单、数据源丰富
项目链接:
https://github.com/kangvcar/InfoSpider
项目使用文档:
https://infospider.vercel.app
项目视频演示:
https://www.bilibili.com/video/BV14f4y1R7oF/
INFO-SPIDER是一个集众多数据源于一身的爬虫工具箱,旨在安全快捷的帮助用户拿回自己的数据,工具代码开源,流程透明。
它还提供数据分析功能,基于用户数据生成图表文件,使得用户更直观、深入了解自己的信息。
这块爬虫工具支持的数据源非常多,一共有 25 个,我给大家分了 6 个类:
电商&支付网站:京东、淘宝、支付宝
电话网:中国移动、中国联通、中国电信
社交通讯:QQ好友、QQ群、朋友圈相册
信息网:知乎、哔哩哔哩、网易云音乐、12306
博客网:博客园、CSDN博客、开源中国博客、简书
邮箱网站:QQ邮箱、网易邮箱、阿里邮箱、新浪邮箱、Hotmail邮箱、Outlook邮箱;
而且它是图形操作界面,你安装好这个代码之后,鼠标点击就可以获取到相应的数据。
2 InfoSpider 使用教程
InfoSpider 的使用也非常简单,整个使用步骤可以分为两步:
1 依赖安装
2 工具运行
如果你有一些 Python 编程基础,这两个步骤并不会很难。
而且作者在 B 站上也有相应的演示视频,非常的贴心。
B 站链接:
https://www.bilibili.com/video/BV14f4y1R7oF/
每个模块的使用方法,作者也写了一个使用文档,文档地址如下:
https://infospider.vercel.app/
我们已知乎为例,你在刚才的使用文档右侧点击知乎,就能跳转到相应的使用说明。
知乎的数据爬取的是个人信息,主要包括如下:
user_profile.json :你的个人基本信息
user_followers.json:你的粉丝信息
user_followees.json:你关注的人
user_articles.json:你发布的文章信息
user_activities.json :你的动态信息
user_zvideos.json:你发布的视频信息
你只要 4 个步骤就能获取上述任意一个知乎账号的信息:
1 点击知乎数据源按钮
2 输入知乎用户名(必须英文名)
3 选择数据保持路径
4 查看爬取的数据(json格式)
以上的所有操作都不需要大家编写任何一行代码,你就能实现爬取知乎账号信息。
其他的网站数据的爬取,也是如此,非常便利。
对于不会编程的,但想要爬取相应数据的同学来说,这个库就是你的数据宝藏库。
当然相应的缺陷也在这里体现,虽然在使用上足够便捷,但相应的网站数据就不够灵活。
比如说我想爬知乎的问答数据,这个工具就不支持。
3 InfoSpider 源码解析
最后我们来看看该库的源代码,这些优秀的库,不仅能实现很多很好用的功能,更重要的是项目的源代码和规范,都是非常值得我们学习。
由于篇幅的问题,我们就只已 Zhihu 爬取代码为例,看看它是怎么实现知乎数据的爬取。
在项目源码中,我们能看到作者定义了一个 Zhihu 的类,在开头调用了 requests 和 askdirectory 的库。
requests 大家都很熟悉了,发送网络请求用的,写爬虫必备的请求库。
askdirectory 这个是做什么用的?
想要知道 askdirectory 是做什么用的,我们首先要了解它是从 tkinter 这个库里面调用出来的。
而 Tkinter 是使用 Python 进行窗口视窗设计的模块。
那窗口视窗设计又是啥?
就是下面图片,这个程序窗口。
tkinter.filedialog 是用来获取文件路径和文件名,这个信息在官方的文档里就有。
而 tkinter.filedialog.askdirectory 是用来提示用户选择目录用的
对应的实际效果就是选择数据保存的路径
对应到源码就是 Zhihu 的初始化函数里的 self.path
看到这里大家就学习到,如果以后你也想实现一个窗口化程序,让用户选择一个文件的时候,你就直接使用 tkinter.filedialog.askdirectory 就行。
那 Zhihu 的模块是怎么获取相应的数据呢?
我们来看获取用户基本信息的方法
看到代码你就应该恍然大悟,原来作者是利用 zhihu 现成的 api,也就是代码中的 url,拼接个 self.userToken 就可以获取到相应的数据。
比如说以我的知乎好为例:
URL:
https://www.zhihu.com/api/v4/members/ji-de-yao-xing-fu
你直接把上面的 url 输入到浏览器上,你就能直接获取到用户的基本信息:
作者在 zhihu 这个模块,都是利用这样的现成的 api 方式,通过 3 行代码就能获取到数据。
所以从这个角度来看,一个爬虫想要高效的获取数据,非常关键的第一步,就是找找该网站是否有现成的 api 接口。
有的话直接拿来使用就行,就可以省去很多事。
4 InfoSpider 项目总结
回顾整个 InfoSpider 项目,其实大家不难发现,这是一个非常好的爬虫入门实战项目。
优秀的项目不仅能让使用者方便的实现功能,更重要的是有完善的文档体系。
这两点作者都做的非常好,作者不仅把数据获取的过程,变的非常简单。
还写了非常完善的使用文档,并且还在 B 站录制了使用视频。
如果大家仔细看完项目源代码,你会发现代码本身并不是很难。
但如果你是刚开始学习 Python 爬虫的同学,我非常建议你们自己跟着项目源代码,自己敲写一边。
如果说这个项目的源代码,你都能理解,你的爬虫水平可以说已经入门了。
最后如果你觉得本文不错,“关注+转发+右下角”,一条龙走起,我就当你打赏了 66 元了。
痴海的自选经典文章,80%的新痴友熬夜也要看完。
如果你还没读过,建议跟进阅读:
最下方是我的私人微信,工作忙读者多,我不可能有问必答,但添加后你可以:
1.偷窥朋友圈私货
2.获取年薪 50W 的 Python 资料
3.加入 Python 编程交流群
4.用一次简单的加好友动作,试试能否给自己的人生多一次认知升级的机会。
当然只有小孩会做选择。
“我全都要“。
转载:https://blog.csdn.net/qq_33570092/article/details/109759801