爬取国内各大直播平台直播信息是以后要做的一个功课,还必须是做成一个系列的,可能远没有其他大神那么厉害,毕竟自己经历过的就是有用的,在此做个记录一下
首先我们需要爬取的内容:
这里我们要爬取的有 直播房间名称,直播主播,直播等级,直播第一截屏(这个是动态的图片,要想获取最新的,必须重新进行爬取),直播人数,直播标签,直播类型(分类),暂且就提取了这些,这些内容都可以进行提取。
本来一开始是用scrapy框架进行提取的,也可以进行提取,后来发现有点大才了,直接找到返回的json 串就可以了 。
第一次使用Httpfox 感觉真吊,挺爽的,也不用一个一个的标签下面进行解析去了。
步骤1:
打开https://www.panda.tv/all 进入熊猫直播的全部目录,然后打开httpfox,清空一下,点击下一页或者2,然后查看httpfox里面的内容,这时候我们会发现
一开始很纠结这个时间戳是怎么来的,看了查看源代码里面的js代码中的function,可能只是单纯的一个new Date()然后再拼接一下其他的取舍问题出来的吧
下面我们把这个json串给格式化一下,然后复制到notepad++上,
SO,里面你想要什么样的字段都可以,难道不是吗?哈哈
下面上一份代码:
只是打印出来一下数据,可能看着有些简陋
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就是之前试过的,有知道的小伙伴可以在下面留言,谢谢啦。
控制台上打印的结果:
整体就是这些,现在是学会把项目学习提交到github上,嘿嘿,我的放上我的github账号吧。
https://github.com/643435675/PyStudy/tree/master/Job
下期再见直播爬虫!