python3 [爬虫入门实战]爬取熊猫直播用户信息

爬取国内各大直播平台直播信息是以后要做的一个功课,还必须是做成一个系列的,可能远没有其他大神那么厉害,毕竟自己经历过的就是有用的,在此做个记录一下

首先我们需要爬取的内容:

python3 [爬虫入门实战]爬取熊猫直播用户信息_第1张图片

这里我们要爬取的有 直播房间名称,直播主播,直播等级,直播第一截屏(这个是动态的图片,要想获取最新的,必须重新进行爬取),直播人数,直播标签,直播类型(分类),暂且就提取了这些,这些内容都可以进行提取。


本来一开始是用scrapy框架进行提取的,也可以进行提取,后来发现有点大才了,直接找到返回的json 串就可以了 。

第一次使用Httpfox 感觉真吊,挺爽的,也不用一个一个的标签下面进行解析去了。

步骤1:

打开https://www.panda.tv/all 进入熊猫直播的全部目录,然后打开httpfox,清空一下,点击下一页或者2,然后查看httpfox里面的内容,这时候我们会发现
python3 [爬虫入门实战]爬取熊猫直播用户信息_第2张图片

一开始很纠结这个时间戳是怎么来的,看了查看源代码里面的js代码中的function,可能只是单纯的一个new Date()然后再拼接一下其他的取舍问题出来的吧

下面我们把这个json串给格式化一下,然后复制到notepad++上,

python3 [爬虫入门实战]爬取熊猫直播用户信息_第3张图片

SO,里面你想要什么样的字段都可以,难道不是吗?哈哈

下面上一份代码:

只是打印出来一下数据,可能看着有些简陋


# encoding=utf8
import requests
import json



url = "https://www.panda.tv/live_lists?status=2&order=person_num&token=&pageno=%d&pagenum=120&_=%d".format(a=range(0,35),b=range(1501946526480,1501946526880))

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0'
    ,
    'Cookie': '__guid=96554777.3243119502220345300.1500627276199.6702; smid=608e0bde-ffe2-4251-90ca-2938cabdc074; monitor_count=18'
    ,
}


def getHtml(url):
    print('##'*30)
    req = requests.get(url, headers=headers)
    print(req.text)
    return req.text


data = getHtml(url)

def printInfos(data):
    jsondata = json.loads(data, "utf-8")
    print(jsondata)
    itemsinfo = jsondata['data']['items']
    for pinfo in itemsinfo:
        name = pinfo['name']
        person_num = pinfo['person_num']
        nickName = pinfo['userinfo']['nickName']
        lelvel = pinfo['host_level_info']
        lable = pinfo['label']
        print(lable)
        cname = pinfo['classification']
        print(cname)
        print(name)
        print(person_num)
        print(nickName)
        print(lelvel)

def mainStart():

    for n in range(0, 50):
        pageindex = 1 + n
        pagetime = int(1501946526480 + n)
        url = "https://www.panda.tv/live_lists?status=2&order=person_num&token=&pageno=%d&pagenum=120&_=%d"%(pageindex,pagetime)
        data = getHtml(url)
        printInfos(data)


mainStart()

有点小麻烦的是:

url = “=%d”>https://www.panda.tv/live_lists?status=2&order=person_num&token=&pageno=%d&pagenum=120&=%d“%(pageindex,pagetime)

这里面的pageindex,跟pagetime,我用fortmat跟range()混合使用,一直报错,上面有个注释掉的url就是之前试过的,有知道的小伙伴可以在下面留言,谢谢啦。

控制台上打印的结果:

python3 [爬虫入门实战]爬取熊猫直播用户信息_第4张图片

整体就是这些,现在是学会把项目学习提交到github上,嘿嘿,我的放上我的github账号吧。

https://github.com/643435675/PyStudy/tree/master/Job

下期再见直播爬虫!

你可能感兴趣的:(#,python3爬虫,我的python3爬虫之路)