前段时间,有人问我关于淘宝app直播频道宝贝如何采集?我尝试了下可以获取的到,模拟器登录不了淘宝,这里有一个坑就是,模拟器有时候会跳到登录页面,登录不了淘宝;
一、用Android的SDK目录下自带的uiautomatorviewer工具,可以获取到app当前界面源代码,拿其中一部分代码来分析下:
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<node index="0" text="" resource-id="com.miui.home:id/force_touch_layer" class="android.widget.FrameLayout" package="com.miui.home" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,0][1080,1920]">
.........................................................
</xml>
属性分析:
index 索引
text 文本内容
content-desc 文本描述
resource-id 控件的id
class 控件的类名
package 包名
checkable 是否可选中
checked 是否选中
clickable 是否可点击
enabled 是否可用
focusable 是否可设置焦点
focused 是否焦点
scrollable 是否可滚动
long-clickable 是否可长按
password 是否密码类型
selected 是否选中
bounds 矩形区域
通过text或者content-desc可以得到app中显示的文字内容!
二、下面是采集的数据截图:
第一步:打开淘宝app,找到中间位置 淘宝直播,获取分类的数据
第二步:获取淘宝直播ID昵称
第三步:获取直播在售的宝贝数据
三、将手机app的界面截图显示在桌面,主要就是用GDI绘图!
关键代码:
Procedure DoPaintImg(DC: HDC; pic : string;h,w:Integer);
var
graphics : TGPGraphics;
Image: TGPImage;
destinationPoints : array[0..2] of TGPPoint ;
begin
destinationPoints[0].X := 0;
destinationPoints[0].Y := 0;
destinationPoints[1].X := h;
destinationPoints[1].Y := 0;
destinationPoints[2].X := 0;
destinationPoints[2].Y := w;
graphics := TGPGraphics.Create(DC);
Image:= TGPImage.Create(pic);
graphics.DrawImage(image, PGPPoint(@destinationPoints), 3);
Image.Free;
graphics.Free;
end;