Android Bilibili网站数据获取一 题目分类获取

来源:互联网 发布:淘宝助理初始化未响应 编辑:程序博客网 时间:2024/06/07 03:12

我使用的是Jsoup框架来解析框架。说实话B站的数据真多,我想哭。

首先我们要确定获取的数据在网站的哪个位置
这里写图片描述

我们打开开发者模式,看网站源码,确定我们获取网站数据对应源码的位置。
这里写图片描述
这些就是我们需要获取数据的位置,想要获取数据首先得让我们的光标调到这个位置,因为只是用select搜索不到,应该是标签太多了。
先上代码

public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        TextView tv = (TextView)findViewById(R.id.tv);        tv.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                new Thread(new Task()).start();            }        });    }    class Task implements Runnable {        @Override        public void run() {            String url = "https://www.bilibili.com/";            Connection conn = Jsoup.connect(url);            // 修改http包中的header,伪装成浏览器进行抓取            conn.header("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/    20100101 Firefox/32.0");            Document doc = null;            try {                doc = conn.get();            } catch (IOException e) {                e.printStackTrace();            }            Elements elementsA = doc.getElementsByClass("bili-wrapper");            String a = elementsA.first().text();            Document documentA = Jsoup.parse(elementsA.toString());            Elements elementsB = documentA.getElementsByClass("nav-menu");            Document documentB = Jsoup.parse(elementsB.toString());            Elements elementsC = documentB.getElementsByClass("nav-item");            for(Element element : elementsC) {                String companyName = element.text();                Log.v("test",companyName);            }            //String b = elementsB.first().text();            //Log.v("test",b);        }    }}

效果如下
09-28 21:55:08.092 6905-7068/zzw.myapplication V/test: 首页
09-28 21:55:08.092 6905-7068/zzw.myapplication V/test: – 动画 MAD·AMV MMD·3D 短片·手书·配音 综合
09-28 21:55:08.092 6905-7068/zzw.myapplication V/test: – 番剧 连载动画 完结动画 资讯 官方延伸 新番时间表 番剧索引
09-28 21:55:08.092 6905-7068/zzw.myapplication V/test: – 国创 国产动画 国产原创相关 布袋戏 资讯 新番时间表 国产动画索引
09-28 21:55:08.092 6905-7068/zzw.myapplication V/test: – 音乐 原创音乐 翻唱 VOCALOID·UTAU 演奏 三次元音乐 OP/ED/OST 音乐选集
09-28 21:55:08.092 6905-7068/zzw.myapplication V/test: – 舞蹈 宅舞 三次元舞蹈 舞蹈教程
09-28 21:55:08.092 6905-7068/zzw.myapplication V/test: – 游戏 单机游戏 电子竞技 手机游戏 网络游戏 桌游棋牌 GMV 音游 Mugen
09-28 21:55:08.102 6905-7068/zzw.myapplication V/test: – 科技 纪录片 趣味科普人文 野生技术协会 演讲·公开课 星海 数码 机械 汽车
09-28 21:55:08.102 6905-7068/zzw.myapplication V/test: – 生活 搞笑 日常 美食圈 动物圈 手工 绘画 ASMR 运动 其他
09-28 21:55:08.102 6905-7068/zzw.myapplication V/test: – 鬼畜 鬼畜调教 音MAD 人力VOCALOID 教程演示
09-28 21:55:08.102 6905-7068/zzw.myapplication V/test: – 时尚 美妆 服饰 健身 资讯
09-28 21:55:08.102 6905-7068/zzw.myapplication V/test: – 广告
09-28 21:55:08.102 6905-7068/zzw.myapplication V/test: – 娱乐 综艺 明星 Korea相关
09-28 21:55:08.102 6905-7068/zzw.myapplication V/test: – 影视 电影 电视剧
09-28 21:55:08.102 6905-7068/zzw.myapplication V/test: 专栏
09-28 21:55:08.102 6905-7068/zzw.myapplication V/test: 广场 会员购 活动中心 游戏中心 新闻中心 画友 芒果TV
09-28 21:55:08.102 6905-7068/zzw.myapplication V/test: 直播 推荐主播 生活娱乐 绘画专区 唱见舞见 御宅文化 单机联机 网络游戏 电子竞技 手游直播
09-28 21:55:08.102 6905-7068/zzw.myapplication V/test: 小黑屋

这个可以看出我在不断的一层一层的接近目标,记住如果是div多层嵌套,这个方法就不行了,因为用class名搜索不到,原因我不清楚,但是下一次我在说这个情况如何解决。