网页视频抓取工具 知乎(Python学习资料,0基础到进阶(上)|python)

优采云 发布时间: 2021-10-05 14:10

  网页视频抓取工具 知乎(Python学习资料,0基础到进阶(上)|python)

  今天写了一个爬虫,用递归的方式爬取知乎的所有用户信息。源码放在github上。有兴趣的同学可以下载看看。这里介绍一下代码逻辑和分页分析。首先,查看网页。,这里我随机选择一个大V作为入口,然后点击他的关注列表,如图

  我们都知道 Python 很容易学习,但我们只是不知道如何学习它或从哪里找到信息。这里,python学习交流QQ群233539995,分享我精心准备的Python学习资料,从基础到进阶!希望大家在学习Python时少走弯路!来吧!

  注意我的爬虫全名是非登录状态。这里的粉丝列表和关注者列表都是后台ajax请求获取的数据(没听说过ajax的童鞋不要慌,ajax请求和普通浏览器的请求没有区别。主要是我们浏览网页时偷偷发送到服务器,请求是为了节省流量,减少请求次数,否则每次看到新数据都会刷新网页,服务器压力很大,所以我们有这个东西),然后我们找到粉丝列表和关注者列表的URL。这个很简单,点击chrome浏览器下的页码开关就可以找到了,如图

  

  只需找到关注者和粉丝的 URL。让我们来看看这些数据。这是粉丝数据的一个例子。如图,是一个json

  

  

  粉丝数据是在这里找到的,但是这里不是用户的详细信息,只是部分数据,但是他提供了一个token_url,我们可以得到这个ID的用户的详细信息,我们来看看如何提取每个用户的详细信息。这里主机发现,在观看粉丝或关注列表时,网页会自动触发对用户详细信息的请求,如图

  

  这次我得到了用户详细信息查询的URL。这里,看一下这个详细信息的网址,如图

  

  上面介绍了网页的基本分析,下面介绍代码的思路。这次爬虫使用递归,这次是scrapy爬取和mogodb数据库存储。

  首先我用一个大V作为爬虫的第一个网页,然后分为三步。第一步,爬取大V的详细信息,保存在数据库中。第二步爬取大V的粉丝,第三步爬取大V的follower(其实就是爬取fans或follower的token_url)。完成后,利用爬取到的粉丝和关注者数据,构建他们各自详细信息的URL,然后将详细信息存入数据库。至此,第一步递归完成,接下来爬虫会从每个粉丝和关注者开始,分别爬取他们的粉丝和关注者的详细数据,继续递归。

  代码中添加了一些自动翻页功能。有兴趣的可以去看看。以下是我们要捕获的项目中定义的数据:

  import scrapyclass 知乎UserItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() answer_count = scrapy.Field()

  #答案编号articles_count = scrapy.Field()

  #Written文章数follower_count = scrapy.Field()

  #Following_count = scrapy.Field()

  #关注多少人educations=scrapy.Field()

  #教育背景描述=scrapy.Field()

  #Personal descriptionlocations = scrapy.Field()

  #Locationurl_token =scrapy.Field()

  #知乎赋予每个用户首​​页的唯一ID name=scrapy.Field()

  #User 昵称employments = scrapy.Field()

  #工作信息business=scrapy.Field()

  #采集一些工作或业务信息 user_type =scrapy.Field()

  #用户类型,可以是个人,也可以是团体等。headline =scrapy.Field()

  #个人主页标签voteup_count = scrapy.Field()

  #获得喜欢thanked_count=scrapy.Field()

  #获取thanksfavorited_count = scrapy.Field()的数量

  #采集次数 avatar_url = scrapy.Field()

  #头像网址

  代码总共不到80行,一分钟就抓取了千余用户知乎的信息。这是结果图

  

  最近在忙别的事情,终于可以天天写爬虫了。不知道你对这篇文章有没有什么问题,可以私信我。

  最后值得一提的是,爬虫一定要伪装成headers,里面有些东西是服务器每次都会检查的。

  我们都知道 Python 很容易学习,但我们只是不知道如何学习它或从哪里找到信息。这里,python学习交流QQ群233539995,分享我精心准备的Python学习资料,从基础到进阶!希望大家在学习Python时少走弯路!来吧!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线