前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >requests爬虎牙频道和主播信息

requests爬虎牙频道和主播信息

作者头像
IT架构圈
发布2018-06-01 10:37:46
1K0
发布2018-06-01 10:37:46
举报
文章被收录于专栏:IT架构圈IT架构圈IT架构圈
#!/usr/bin/env python  
# -*- coding: utf-8 -*-  
# @Time    : 2018/1/23 15:42  
# @Author  : Aries  
# @Site    :   
# @File    : yy.py  
# @Software: PyCharm  
import requests  
import time  
from lxml import html  
headers = {  
    'user-agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36",  
    'x-devtools-emulate-network-conditions-client-id': "(6DC99B5E32009D9E60CDB0C3B620074)",  
    'upgrade-insecure-requests': "1",  
    'accept': "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",  
    'accept-language': "zh-CN,zh;q=0.9,en;q=0.8",  
    'cookie': "udb_passdata=1; PHPSESSID=91siudst3ptb6egbjgh8j3rn42; SoundValue=0.50; guid=0e74abb6d4e5665a0c52c0e3c1e35727; __yasmid=0.2352245147818357; __yamid_tt1=0.2352245147818357; __yamid_new=C7D8A9F6CD3000013AA46C206EC0135D; _yasids=__rootsid%3DC7D8A9F6CDA00001226020701A00E5B0; Hm_lvt_51700b6c722f5bb4cf39906a596ea41f=1516692949; isInLiveRoom=; Hm_lpvt_51700b6c722f5bb4cf39906a596ea41f=1516696335",  
    'cache-control': "no-cache",  
    }  
class huyaFcukYouSpider:  
    urlStyle = "http://www.huya.com/g"  
    '''  
    解析出来全部分类网页内容  
    '''  
    def huyaRootHtml(self):  
        print("开始分析虎牙分类======》》》")  
        roothtml = requests.get(huyaFcukYouSpider.urlStyle,headers = headers)  
        print("爬分类返回状态码======》》》"+str(roothtml.status_code))  
        return roothtml.text  
    '''  
    解析出来分类html  
    '''  
    def itmStyle(self,roothtml):  
        tree = html.fromstring(roothtml)  
        hrefs = tree.xpath('//*[@id="js-game-list"]/li/a/@href')  
        texts = tree.xpath('//*[@id="js-game-list"]/li/a/img/@title')  
        styleObjects = []  
        for (text, href) in zip(texts, hrefs):  
            styleObject = {"text":text,'href':href}  
            styleObjects.append(styleObject)  
        print("分类已经获取成功,大哥开始对下面的频道吧")  
        print("分类数量:"+ str(len(styleObjects)))  
        return styleObjects  
    '''  
    请求频道内的信息  
    '''  
    def itemContent(self, styleObjects):  
        for item in styleObjects:  
            print("开始分析  "+item["text"]+"  ======》》》")  
            itemhtml = requests.get(item["href"], headers=headers)  
            print("爬"+item["text"]+"返回状态码======》》》" + str(itemhtml.status_code))  
            tree = html.fromstring(itemhtml.text)  
            titles = tree.xpath('//*[@id="js-live-list"]/li/a[contains(@class,"title") and contains(@class,"new-clickstat")]/text()')  
            nicknames = tree.xpath('//*[@id="js-live-list"]/li[@class="game-live-item"]/span/span[contains(@class,"avatar") and contains(@class,"fl")]/i/text()')  
            numbers = tree.xpath('//*[@id="js-live-list"]/li[@class="game-live-item"]/span/span[@class="num"]/i[@class="js-num"]/text()')  
            for (title, nickname,number) in zip(titles, nicknames,numbers):  
                print("\t\t主播:"+nickname+";正在频道名称为: "+title +"直播,观看人数:"+str(number))  
                #感觉慢就去掉  
                time.sleep(1)  
            # 感觉慢就去掉  
            time.sleep(10)  
            pass  
    def go(self):  
        rootHtml = self.huyaRootHtml()  
        styleObjects = self.itmStyle(rootHtml)  
        self.itemContent(styleObjects)  
huya = huyaFcukYouSpider()  
huya.go()  

才学爬虫的时候拿来练手的一个项目,分享给大家希望有收获!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程坑太多 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档