No.2 从0写一个爬虫,爬取500w好友关系数据

本文介绍如何设计并实现一个网络爬虫,爬取简书平台上的500w关注关系数据。通过分析目标,总结规则,采用图的BFS遍历算法,解析HTML获取用户ID,同时探讨了防止被封IP的策略。文章适合初学者,提供完整可运行的代码,并分享了零基础学习爬虫的建议。
摘要由CSDN通过智能技术生成

0x00 前言

上一篇文章已经写了一部分数据获取和爬虫的内容,这篇文章我们一起来实现一个网络爬虫,用这个小爬虫来爬取500w的简书的粉丝关系对。

1. 两个小问题

为什么要爬关系对数据呢,爬些文字数据岂不更好?

为什么要爬关系对数据?因为居士最近正在搞和社交关系相关的项目,需要对大量的关系数据做处理,而且要用到 LPA 、 PageRank 这些算法,写博客本来就需要为自己学习和工作来服务,为了加深自己的理解,因此前几篇博客都和关系数据相关。后续当需要文本数据的时候,会有专门的文章。

为什么要爬简书数据呢?

为什么爬简书的数据?这就和我们爬虫的实现有关了,比较成熟的网站都有很强的防爬虫措施,比如xx百科,很容易被封IP。但是像简书和CxxN这些网站的防爬虫相对做的比较弱,比较容易下手。

2. 通过本文能收获什么?

  1. 你将能了解到如何针对特定网站也设计一个爬虫,设计思路很重要。我们会主要来讲怎么设计,实现的代码很简单,大致过一下,不一行行讲了,都有详细注释。
  2. 你会了解到爬虫的几个工程要点和一种简单的实现方法:图的BFS,页面的解析和已爬取URL列表的维护。
  3. 完整能运行的代码,有需要的话爬好的数据也可以拿走。

0x01 设计一个小爬虫

1. 明确目标

先明确一下目标:我们要爬取简书中的的关注数据,比如A关注B,那我们就存下来B A这样一条数据,即人+粉丝,以Tab分割。

2. 总结规则

下图,是我们想要爬取数据的主要页面,我们希望从这个页面得到这样一份数据:

dantezhao   小飞_b7ef
dantezhao   Daisy向阳花儿
dantezhao   Maxine24w
dantezhao   Jialin28

接着,我们需要看一下它返回给浏览器的 HTML 的source code什么样子,然后从中来解析出来这个关系对。在Chrome中直接在当前网页下按 ctrl+u 即可。

从下图中,我们可以看到,只要拿到红框圈住的部分就可以了。仔细看一下,红框圈住的部分包含两块内容:<a class="name" href="/u/9e2b3667983d">用户名。 这两块内容我们都需要,特别是前面的那串奇怪的字符,属于上一篇文章《No.1 聊一聊数据获取和爬虫》中提到的URL解析。能把这个解析出来,我们就能不停地获取新的网页链接,爬取内容。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值