武陵天下网站开发,wordpress没有中文,做第三方网站注意什么,怎麽做网站我把灵异过程录下来了#xff0c;速看#xff01; 重大灵异事件#xff01;我的手机大半夜地自己在B站看番剧#xff01;#xff01;#xff01; 其实#xff0c;我利用了appiumpython实现手机自动化爬虫B站热门番剧数据功能#xff0c;具体操作如下#xff1a;
一、…我把灵异过程录下来了速看 重大灵异事件我的手机大半夜地自己在B站看番剧 其实我利用了appiumpython实现手机自动化爬虫B站热门番剧数据功能具体操作如下
一、搭建环境
1、搭建环境需要通过pip指令安装好client编程库Appium ServerJDK(配置环境变量 JAVA_HOME)SDK(配置环境变量 ANDROID_HOME
2、环境准备好后运行准备好的测试程序却报错如下 运行结果说找不到我的adb程序于是我检查了appium的环境设置果然没有填写于是修改后重新运行。 3、再次运行后报错如下说无法连接到我的手机 检查方法查询是谁占用了端口
打开cmd命令窗口输入
netstat -ano | findstr “5037”
找出5037端口占用的应用杀掉该应用进程
taskkill -f -pid 3116 输入 adb devices -l 再次查看电脑是否连接到了手机 这时电脑显示已经连接手机我再次运行测试程序依然报错找了半天原因不知错哪儿。最后发现原来是自己仗着以前开发过APP手机已经处于开发者模式所以没有检查手机的“开发人员选项”真是一个勾勾引发的血案最简单、最容易被忽略的东西往往害人最深。 二、查找appPackage和appActivity
1、当手机已安装b站时
执行adb shell dumpsys activity recents | find “intent{” 获取appPackagetv.danmaku.biliappActivity.ui.splash.SplashActivity
2、调试完成之后出现了点击搜索栏无法自动弹出键盘的情况
控制台输入 adb uninstall io.appium.settings 即可恢复。
三、利用界面查看工具查找元素
1、点击start inspector session设置参数 2、找到元素跳转至番剧表单 3、滚动界面至找到元素“查看完整表单”若没找到元素继续滚动。
1滚动表单原理由于每个手机的屏幕尺寸不同所以先获取当前手机屏幕尺寸再执行向下滑动的动作。x1y1表示初始位置x1y2表示滑动的终止位置。 2在滑动过程中寻找“查看完整表单”元素
注意此处千万不要把element写成了elements因为写作driver.find_elements_by_id(‘navLL’)的话target则是一个表单而不是变量。而表单target如果事先没有声明会无法运行当try后面的内容无法运行时是无论如何都是找不到‘navll’元素的所以会一直重复执行向下滑动界面的指令。因为多打了个s报错我在这卡了半个小时。。。。。 4、获取榜单信息 四、小结
此程序为一个简单的app数据爬虫获取b站app榜单数据。大家可以看到其实滚动查询元素这个功能并不完善可以再继续优化。因为对用UiSelector 这个类里面的方法实现元素定位不是很熟悉所以爬虫结果是有重复的不过能学好UIAutomator的话通过父元素、子元素等七大姑八大姨亲戚来定位元素应该会很容易。
爬虫b站数据做下来的感觉就是爬app中的元素比爬网页麻烦且调试时候手机反应速度挺慢的难怪现在网页爬虫有那么多壁垒而app爬虫限制就很少。
更新 以上代码提到的问题已经优化爬虫代码如下
shows []
for i in range(4):titles driver.find_elements_by_class_name(android.view.View)for title in titles:printitle title.textif printitle in shows:continueshows.append(printitle)print(printitle)_find_by_scroll()通过新建列表if语句查重去重然后打印就ok啦。