使用uiautomator2获取Android抖音直播间评论数据

本文介绍如何使用UIAutomator2结合Python等工具抓取抖音直播间内的滚动评论数据。通过确定滚动TextView的ID并改造现有代码,实现了对评论数据的有效获取。文章还分享了解决方案在不同模拟器上的表现。

此内容在两位前人的基础上优化实现

UIAutomator2 介绍了如何使用Android黑盒测试工具
​​​​​​​python+uiautomator2+weditor获取页面的所有文本数据 介绍了如何获取Android app页面数据

但是上面的两篇文章没有获取直播间内滚动的评论。

首先、要使用weditor 确定滚动的textview 的id。

 然后改造第二篇文章中的代码,下面是关键代码,完整代码请 点这里

            for elem in d.xpath('//*[@resource-id="com.ss.android.ugc.aweme:id/text"]').all():
                print(time.time(), "-timestemp-", elem.text)
如果使用真机调试,这行代码 u2.connect('设备id') 填写设备id,如果使用模拟器此处应该别写ip地址和端口号

在适用了几款模拟器后普遍出现抖音直播间无法进入的情况,如夜神模拟器、逍遥模拟器,最后测试了mumu模拟器可以避免这个问题

最后数据的效果如下图

 

 

获取直播间评论通常涉及与网页的交互,包括滚动加载更多评论、处理动态内容等。Playwright 是一个强大的工具,可以用于模拟浏览器行为并抓取动态网页内容。以下是实现此功能的基本思路和代码示例。 ### 1. 环境准备 确保已经安装了 Playwright,并且版本兼容当前的浏览器环境。可以使用以下命令安装特定版本的 Playwright: ```bash npm install -g playwright@1.49.0 ``` 安装完成后,使用以下命令验证版本: ```bash playwright -V ``` 接着,安装所需的浏览器: ```bash playwright install ``` ### 2. 抓取直播间评论的步骤 - **打开直播间页面**:通过 Playwright 打开指定的直播间链接。 - **等待评论区域加载**:使用 `page.wait_for_selector()` 等待评论区域的元素加载完成。 - **滚动加载更多评论**:通过模拟页面滚动来触发更多评论的加载。 - **提取评论内容**:从页面中提取所需的评论数据。 ### 3. 示例代码 以下是一个使用 Playwright 抓取直播间评论的示例代码: ```javascript const { chromium } = require('playwright'); (async () => { // 启动浏览器 const browser = await chromium.launch({ headless: false }); // 设置为 false 以便查看操作过程 const page = await browser.newPage(); // 打开直播间页面 await page.goto('https://www.douyin.com/live/1234567890'); // 替换为实际的直播间链接 // 等待评论区域加载 await page.waitForSelector('.comment-list'); // 替换为实际的评论区域选择器 // 滚动加载更多评论 for (let i = 0; i < 5; i++) { await page.evaluate(() => { window.scrollBy(0, window.innerHeight); }); await page.waitForTimeout(2000); // 等待评论加载 } // 提取评论内容 const comments = await page.$$eval('.comment-item', items => { return items.map(item => { const username = item.querySelector('.username')?.innerText; const commentText = item.querySelector('.comment-text')?.innerText; return { username, commentText }; }); }); // 输出评论内容 console.log(comments); // 关闭浏览器 await browser.close(); })(); ``` ### 4. 注意事项 - **选择器适配**:的页面结构可能会发生变化,因此需要根据实际情况调整选择器。 - **反爬虫机制**:可能有反爬虫机制,可以通过设置请求头、随机等待时间等方式规避。 - **动态加载**:评论区域通常是动态加载的,需要确保等待足够的时间以加载评论。 ### 5. 扩展功能 - **保存评论到文件**:可以将抓取的评论保存到文件中,便于后续分析。 - **定时抓取**:通过定时任务实现评论的定期抓取和监控。 通过以上步骤和代码,可以使用 Playwright 实现对直播间评论的抓取。如果遇到页面结构变化或反爬虫机制,可以进一步调整代码以适应新的环境。 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值