投稿入口|热门专题|网站地图|移动官网|微信编辑器|小程序商店
您的当前位置:网站首页 > 大数据 > 大数据应用 > 正文

Python抓取花椒网人气主播全教程(附:代码)

来源:网络整理 编辑:蚂蚁站长 时间:2017-02-07 00:39:28 阅读:

Python抓取花椒网人气主播全教程(附:代码)

文 | octans

本文将介绍我最近在学习Python过程中写的一个爬虫程序,将力争做到不需要有任何Python基础的程序员都能读懂。读者也可以先跳到文章末尾看最终收集的数据效果和完整代码。

1. 确立目标需求

本次练习Python爬虫的目标需求为以下两点:

1) 收集huajiao.com上的人气主播信息:每位主播的关注数,粉丝数,赞数,经验值等数据

2) 收集每位人气主播的直播历史数据,包括每次直播的开播时间,观看人数,赞数等数据

2. 确立逻辑步骤

首先通过浏览器查看www.huajiao.com网站上的各个页面,分析它的网站结构。得到如下信息:

1) 每一个导航项列出的都是直播列表,而非主播的个人主页列表

以“热门推荐”为例,如下图,每个直播页面的url格式为http://www.huajiao.com/l/liveId, 这里的liveId唯一标识一个直播,比如http://www.huajiao.com/l/52860333

Python抓取花椒网人气主播全教程(附:代码)

2) 在直播页上有主播的用户ID和昵称等信息

通过点击用户昵称可以进入主播的个人主页

Python抓取花椒网人气主播全教程(附:代码)

3) 在主播个人主页上有更加完整的个人信息

更加完整的个人信息包括关注数,粉丝数,赞数,经验值等数据;也有主播的直播历史数据,如下图,每个主播个人主页的url格式为http://www.huajiao.com/user/userId, 这里的userId唯一标识一个主播用户,比如http://www.huajiao.com/user/50647288

Python抓取花椒网人气主播全教程(附:代码)

4) 程序逻辑

通过以上的分析,爬虫可以从直播列表页入手,获取到所有的直播url中的直播id,即上文提到的liveId;

拿到直播id后就可以进入直播页获取用户id,即前面提到的userId,

有了userId后就可以进入主播个人主页,在个人主页上有主播完整的个人信息和直播历史信息。

具体步骤如下:

a):抓取直播列表页的html, 我选取的是”热门推荐”页面http://www.huajiao.com/category/1000

b):从获取到的“热门推荐”页面的html中过滤出所有的直播地址,http://www.huajiao.com/l/liveId

c):通过直播id抓取直播页面的html, 并过滤出主播的userId

d):通过userId抓取主播的个人主页,过滤出关注数,粉丝数,赞数,经验值;过滤出直播历史数据。

e):将用户数据和直播历史数据写入mysql保存

以上是根据观察网站页面,直观上得出的一个爬虫逻辑,但实际在开发过程中,还要考虑更多,比如:

a)爬虫要定时执行,对于已经采集到的数据,采取何种更新策略

b)直播历史数据需要请求相应的ajax接口,对收到的数据进行json解码分析

c)主播昵称包含emoji表情,如果数据库使用常用的编码”utf8″则会写入报错

d)过滤直播地址来获取直播id时,需要使用到正则匹配,我使用的是Python库”re”

e)分析html,我使用的是”BeautifulSoup”

f)读写mysql,我使用的是”pymysql”

如上逻辑步骤分析清楚后,就是编码了,利用Python来实现以上的逻辑步骤。

3. Python编码

1) 数据表设计

Python抓取花椒网人气主播全教程(附:代码)

图文精选:

Copyright©2012-2030小蚂蚁信息网版权所有 站长QQ:1614558876 粤ICP备14061018号-1


郑重声明:本网站资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有,如有不愿意被转载的情况,请通知我们QQ1614558876删除已转载的信息。

知道创宇云安全
Top