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名搜索不到,原因我不清楚,但是下一次我在说这个情况如何解决。
- Android Bilibili网站数据获取一 题目分类获取
- 获取指定网站数据
- iOS 获取分类 数据存储
- 获取bilibili视频封面的方法
- Chrome分析网页-一步步获取Bilibili弹幕
- 获取数据的网站集锦
- get_the_category函数获取当前文章分类数据
- android获取图片数据
- Android通讯录数据获取
- Android获取HTML数据
- Android获取网络数据
- android获取网络数据
- android获取网络数据
- android获取位置数据
- Android 获取指南针数据
- Android Bmob获取数据
- android获取ros数据
- Android WebView获取网站标题
- Android小控件之模糊匹配
- 【Python-3.3】字典中存储列表
- python xlrd读取datetime类型数据
- 数据库学习笔记
- HDU 6118 度度熊的交易计划(最小费用可行流)
- Android Bilibili网站数据获取一 题目分类获取
- corosync+pacemaker实现集群管理
- Python list循环删除元素
- < 题目 > LeetCode
- Linux-4.9.2内核在mini2440上的移植(六)——修改MD9000驱动
- 朴素贝叶斯法
- NB-IOT之一个完整的BC95 UDP从开机到数据发送接收过程
- 谈一谈mmap
- phaser模拟百米赛跑