飞道的博客

Github 3.6K!数据百宝箱,爬虫入门必备!

345人阅读  评论(0)

              

【G百科】:带你逛 Github 上那些牛 x 的项目

 

每周,痴海会精心挑选一个 Github 上牛 x 的开源项目。

 

通过项目讲解,源码解析,让你知道原来编程还可以这样逆天操作。

 

今天是 G 百科系列文章第一篇,主角就是最近 Github 上非常的火爆的爬虫库:InfoSpider。

 

不用写任何一行代码,就能爬取 26 个网站的数据!

  1. InfoSpider 是什么?

  2. InfoSpider 要怎样使用?

  3. 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%的新痴友熬夜也要看完。

如果你还没读过,建议跟进阅读:

如何自学Python(2020版)

我为什么要学习 Python(2020版)

24 岁,人生赚到的第一个100W

最下方是我的私人微信,工作忙读者多,我不可能有问必答,但添加后你可以:

 

1.偷窥朋友圈私货

2.获取年薪 50W 的 Python 资料

3.加入 Python 编程交流群

4.用一次简单的加好友动作,试试能否给自己的人生多一次认知升级的机会。 

 

当然只有小孩会做选择。

“我全都要“。


转载:https://blog.csdn.net/qq_33570092/article/details/109759801
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场