爬虫小项目(三)--爬取bilibili并存入数据库

本文介绍了如何使用BeautifulSoup和Selenium爬取Bilibili的新番信息,包括新番名称、观看人数和弹幕数量。在解析HTML时遇到问题,但最终成功实现。翻页通过定位并点击下一页元素实现,爬取的数据将存储到数据库中,数据库操作部分将在后续博客讲解。
摘要由CSDN通过智能技术生成

最近过年啦,祝大家新年快乐,万事如意。

由于前几天回到家后比较忙,就没时间更新。然后昨天终于闲了下来,就写了个爬取Bilibili新番的爬虫。

这次主要也还是用beautifulsoup,selenium来爬取信息,当然在存储数据的时候还会用到一些mysql的知识,这个在下一篇博客再讲吧。

那么接下来开始这次的记录。

先看我们这次要抓取的内容。


我们要抓取的是这个部分的新番名,还有观看人数,以及弹幕的数量,接下来我们看一下它们分别在HTML页面的哪个地方。

按一下F12


我们可以发现其实每个新番都在class为r的div里面,而观看人数和弹幕都在class为v-info-i里面,需要注意的是这两个是一样的,我昨天在爬取的时候在这里遇到了一点小麻烦,只能说学艺不精,待会再讲。

接下来看这几行代码:

          wait.until(
                EC.presence_of_element_located((By.CSS_SELECTOR,'#videolist_box > div.vd-list-cnt > ul > li:nth-child(1) > div > div.r'))
            )

我们通过定位得到这个元素,接下来只要用beautifulsoup就可以得到新番名字了,关键是接下来这一步。

自己代码还是写的太少了,所以在得到观看人数和弹幕这两个数据的时候卡了一会才想出来怎么解决。

让我们先看代码:

page = driver.page_source
        soup = BeautifulSoup(page,'html.parser')
        items = soup.find_all('div',class_ = 'r')        #用find_all()函数找到该页面所有的新番
        for item in items:
            item1 = item.find_all('span',class_ = 'v-info-i')           #这一步是我得到观看人数和弹幕的关键,找到第i个新番的所有v-info-i
            Anime_name = item.find('a',class_ = 'title').text          #得到新番名
            Viewing_name = item1[0].text                               #得到观看人数
            Barrage = item1[1].text                                     #得到弹幕数量

在我们得到页面的源代码后,我们通过beautifulsoup来解析网页

我们贴上这一段的完整代码:

    def get_response(self):
        driver = self.driver
        wait = self.wait
        try:
            wait.until(
                EC.presence_of_element_located((By.CSS_SELECTOR, '#videolist_box > div.vd-list-cnt'))
            )
            wait.until(
                EC.presence_of_element_located((By.CSS_SELECTOR,'#videolist_box > div.vd-list-cnt > ul > li:nth-child(1) > div > div.
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值