Python爬虫实战--斗鱼直播爬虫

前言:
稍微总结一下前面我们所学到的内容吧!在前面的实战学习中,我们学会如何使用requests来获取网页源码,并从中提取出我们所需要的数据, 那接下来,我们也将进一步学会使用selenium获取网页,分析网页,和提取数据。
目标站点分析
目标URL:https://www.douyu.com/directory/all
明确内容:
在这里插入图片描述
本次爬虫实战里,我们将要爬取斗鱼网站上面所有的房间信息,并提取我们的目标数据:房间名,房间链接,房主,房间分类,观看人数等红色方框中的数据。
翻页策略:
之前讲过,我们在翻页是,有三种操作模式:
1.直接查找页面之间的联系,如:/pnXX/,这只需要XX递增,便可以遍历所有的页面了
2.对于AJAX加载的页面,我们需要找到接口,并请求它,获取页面信息,如新浪微博
3.通过找到,下一页的按钮,再使用selenium,点击按钮,完成翻页
这里我们可以采用第三种,来获取下一页的页面信息
在这里插入图片描述

 # 3.点击下一页
        print('Next Page!')
        temp_list = self.driver.find_elements_by_class_name("shark-pager-next")
        # 4.进行循环获取所有的房间信息
        while len(temp_list) > 0 and times < 3:
            times += 1
            temp_list[0].click()
            time.sleep(3)
            item_list = self.get_room_info()
            self.save_item_list(item_list)
            print('Next Page!')
            temp_list = self.driver.find_elements_by_class_name("shark-pager-next")

提取数据

    def get_room_info(self):
        li_list = self.driver.find_elements_by_xpath("//ul[@id='live-list-contentbox']/li")
        item_list = []
        for li in li_list:
            room_name = li.find_element_by_xpath("./a").get_attribute("title")
            room_link = li.find_element_by_xpath("./a").get_attribute("href")
            room_img = li.find_element_by_xpath("./a/span/img").get_attribute("src")
            room_category = li.find_element_by_xpath(".//span[@class='tag ellipsis']").text
            room_author = li.find_element_by_xpath(".//span[@class='dy-name ellipsis fl']").text
            watch_number = li.find_element_by_xpath(".//span[@class='dy-num fr']").text
            item = dict(
                room_name=room_name,
                room_link=room_link,
                room_img=room_img,
                room_category=room_category,
                room_author=room_author,
                watch_number=watch_number,
            )
            item_list.append(item)
            # print(item)
        return item_list

战果展示
在这里插入图片描述
还是留个小作业吧~请大家进一步完善代码,并将提取的数据存入到数据库中。
源码地址:https://github.com/NO1117/Douyu_Spider
Python交流群:942913325 欢迎大家一起交流学习

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值