栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python使用bs4获取网页排行榜数据(基础版)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python使用bs4获取网页排行榜数据(基础版)

1.首先来到B站排行榜页面,按F12分析结构

2.鼠标放在代码上,一行一行往下移动,不要急,给浏览器一点反应时间。

3.当你发现排行榜所在位置被覆盖了,如下图,证明排行榜的代码就在这里

 4.接下来,打开隐藏的部分,继续往下找,应该就能找到

    标签,改标签的主要作用就是显示列表

     5.现在 ,目标都出现了

     排行,名称,更新状态,播放量,弹幕量,追番数

    直接上代码:我会教的,不会python编程也没事 ,照着格式改就OK

    1.运行环境配置

    首先去安装好python3,然后打开windows的cmd命令窗口

    输入pip3 install Beautifulsoup4安装所需的bs4代码模块

    再输入pip install requests安装request库

    2.正式开始

    (1)调用我们下载完成的库文件

    import requests
    from bs4 import BeautifulSoup

     (2)定义好主函数

    import requests
    from bs4 import BeautifulSoup
    
    
    
    
    
    
    
    
    
    
    
    if __name__=="__main__":
        

    (3)鼠标的光标移到:后面,回车一下(python比较矫情,缩进不对就报错),定义一个函数用来实现功能,我这里定义huoqushuju(),只要是英文串加个()就没问题。

    import requests
    from bs4 import BeautifulSoup
    
    
    
    
    
    
    
    
    if __name__=="__main__":
        huoqushuju()
    

    (4)接下来,我们在主函数前面写上函数

    import requests
    from bs4 import BeautifulSoup
    
    
    def huoqushuju():
    
    
    
    return
    
    
    if __name__=="__main__":
        huoqushuju()
    

    (5)代码是死的,不会自己找目标,你要把目标帮它找好,网站地址先来

    import requests
    from bs4 import BeautifulSoup
    
    
    def huoqushuju():
         url = 'https://www.bilibili.com/v/popular/rank/bangumi'
    
    
    return
    
    
    if __name__=="__main__":
        huoqushuju()
    

    (6) 爬虫代码是需要像个浏览器一样去访问这个网站的,所以把浏览器头给代码,这就像是一张通关文书

    import requests
    from bs4 import BeautifulSoup
    
    
    def huoqushuju():
        url = 'https://www.bilibili.com/v/popular/rank/bangumi'
        headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X metaSr 1.0'
        } 
    
    return
    
    
    if __name__=="__main__":
        huoqushuju()
    

     (7)然后把两行标准代码写上去,这个讲不来

    import requests
    from bs4 import BeautifulSoup
    import datetime
    
    
    
    def huoqushuju():#B站动漫数据
        url = 'https://www.bilibili.com/v/popular/rank/bangumi'
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X metaSr 1.0'
        }
        page_text = requests.get(url=url, headers=headers).text
        soup = BeautifulSoup(page_text, 'lxml')
    
        return
    
    
    
    if __name__=="__main__":
        huoqushuju()
    
    

    (8)我们把网页中

      中包含的
    • 全部存进字典(就是拿来放一堆字的地方)

      import requests
      from bs4 import BeautifulSoup
      import datetime
      
      
      
      def huoqushuju():#B站动漫数据
          url = 'https://www.bilibili.com/v/popular/rank/bangumi'
          headers = {
              'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X metaSr 1.0'
          }
          page_text = requests.get(url=url, headers=headers).text
          soup = BeautifulSoup(page_text, 'lxml')
          li_list = soup.select('.rank-list > li')
          return
      
      
      
      if __name__=="__main__":
          huoqushuju()
      
      

      (9) 其实,你要的东西已经都在li_list字典里了,只是还和网页上的代码混在一起,接下来我们把它挑出来写进文件里。

      import requests
      from bs4 import BeautifulSoup
      
      
      
      
      def huoqushuju():#B站动漫数据
          url = 'https://www.bilibili.com/v/popular/rank/bangumi'
          headers = {
              'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X metaSr 1.0'
          }
          page_text = requests.get(url=url, headers=headers).text
          soup = BeautifulSoup(page_text, 'lxml')
          li_list = soup.select('.rank-list > li')
          with open('bZhanRank.txt', 'w', encoding='utf-8') as fp:#文件名bZhanRank.txt,utf-8编码写入文本
              for li in li_list:#查看所有li
                  # 解析动漫排行
                  li_rank = li.find('div', class_='num').string#find是查找,这里找的是class='num'的div中的string格式的文本
                  li_rank = '动漫排行为:' + li_rank + '    '
                  # 解析动漫更新状态
                  li_gengxin = li.find('div', class_='pgc-info').string
                  li_gengxin = '动漫更新状态:' + li_gengxin + '    '
                  # 解析动漫标题
                  li_title = li.find('div', class_='info').a.string.strip()
                  li_title = '动漫标题为:' + li_title + '    '
                  # 解析动漫播放量
                  li_viewCount = li.select('.detail>span')[0].text.strip()#select是选择,查找的是class='detail'下的第一个标签中的文本
                  li_viewCount = '动漫播放量为:' + li_viewCount + '    '
                  # 解析弹幕数量
                  li_danmuCount = li.select('.detail>span')[1].text.strip()
                  li_danmuCount = '动漫弹幕数量为:' + li_danmuCount + ' '
                  # 解析动漫综合评分
                  li_zongheScore = li.find('div', class_='pts').div.string
                  li_zongheScore = '动漫综合评分为:' + li_zongheScore
                  #根据格式写入文件
                  fp.write(li_rank + li_gengxin + li_title + li_viewCount + li_danmuCount + li_zongheScore + 'n')
          return
      
      
      
      if __name__=="__main__":
          huoqushuju()
      
      

      获取后的数据文件 

      进阶版链接python爬取网页排行榜数据(进阶版)_yuwoxinanA3的博客-CSDN博客

      哪里不懂欢迎留言,两天内会回答

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/587789.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号