国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python使用Appium在移動(dòng)端抓取微博數(shù)據(jù)的實(shí)現(xiàn)

瀏覽:2日期:2022-08-06 16:36:15
目錄使用Appium在移動(dòng)端抓取微博數(shù)據(jù)查找Android App的Package和入口記錄微博刷新動(dòng)作爬取微博第一條信息使用Appium在移動(dòng)端抓取微博數(shù)據(jù)

Appium是移動(dòng)端的自動(dòng)化測(cè)試工具,讀者可以類比為PC端的selenium。通過(guò)它,我們可以驅(qū)動(dòng)App完成自動(dòng)化的一系列操作,同樣也可以爬取需要的內(nèi)容。

這里,我們需要首先在PC端安裝Appium軟件,安裝下載的地址如下:https://github.com/appium/appium-desktop/releases

安裝軟件的步驟非常簡(jiǎn)單,就與大多數(shù)軟件安裝步驟一樣,這里不在贅述。

但是只安裝Appium軟件并不能操作手機(jī)App,還需要下載專業(yè)的Android工具Android SDK,這里讀者可以直接下載安裝Android Studio即可,安裝完成之后,Android SDK也就安裝完成了。

基礎(chǔ)的配置到這里就結(jié)束了。下面,我們來(lái)通過(guò)Appium軟件操作手機(jī)App。

查找Android App的Package和入口

這里,博主主要介紹如何操作Android手機(jī),感興趣的可以自己查閱資料配置IOS端。我們先來(lái)打開(kāi)Appium軟件,看看其登錄界面。

Python使用Appium在移動(dòng)端抓取微博數(shù)據(jù)的實(shí)現(xiàn)

如上圖所示,我們不需要更改任何參數(shù),只需要點(diǎn)擊'Start Server v1.18.0'按鈕,進(jìn)行登錄操作,登錄之后,會(huì)出現(xiàn)如下界面。

Python使用Appium在移動(dòng)端抓取微博數(shù)據(jù)的實(shí)現(xiàn)

這里,我們點(diǎn)擊放大鏡即可。點(diǎn)擊之后,會(huì)出現(xiàn)步驟4的界面,我們需要在這里界面之中配置你需要操作或者說(shuō)爬取的App。

比如,這里博主需要爬取微博App的數(shù)據(jù),那么你需要下載微博App的.apk安裝文件,然后通過(guò)反編譯查找其包名與啟動(dòng)界面。具體反編譯步驟如下:

Python使用Appium在移動(dòng)端抓取微博數(shù)據(jù)的實(shí)現(xiàn)

如上圖所示,我們需要通過(guò)壓縮文件打開(kāi)weibo.apk安裝包,將AndroidManifest.xml拷貝出來(lái)。然后通過(guò)AXMLPrinter2.jar工具反編譯AndroidManifest.xml,默認(rèn)AndroidManifest.xml是亂碼,反編譯命令如下:

java -jar AXMLPrinter2.jar AndroidManifest.xml > AndroidManifest.txt

然后,我們?cè)诖蜷_(kāi)其AndroidManifest.txt就可以看到微博的包名以及啟動(dòng)界面的Activity名稱,具體如下所示:

Python使用Appium在移動(dòng)端抓取微博數(shù)據(jù)的實(shí)現(xiàn)

這里,我們得到微博的包名為:com.sina.weibo,而微博的啟動(dòng)界面為:com.sina.weibo.MainTabActivity。接著,可以配置Appium軟件,效果如下:

Python使用Appium在移動(dòng)端抓取微博數(shù)據(jù)的實(shí)現(xiàn)

這里,讀者可以直接點(diǎn)擊Start Session,也可以點(diǎn)擊保存Save As方便下一次直接使用。這里,博主先保存再點(diǎn)擊Start Session(注意,deviceName是關(guān)于手機(jī)里面的設(shè)備名稱,并不一定是你的手機(jī)名稱):

Python使用Appium在移動(dòng)端抓取微博數(shù)據(jù)的實(shí)現(xiàn)

可以看到,現(xiàn)在我們的微博手機(jī)界面已經(jīng)在Appium軟件上顯示了。下面,我們可以使用上面的眼睛按鈕,監(jiān)聽(tīng)我們要操作的步驟,然后保存為一個(gè)動(dòng)作鏈。

記錄微博刷新動(dòng)作

在實(shí)際的微博中,我們通過(guò)下拉刷新微博界面。不過(guò),其實(shí)還可以通過(guò)點(diǎn)擊底部的首頁(yè)按鈕進(jìn)行刷新,記錄操作并生成Python代碼的步驟如下所示:

Python使用Appium在移動(dòng)端抓取微博數(shù)據(jù)的實(shí)現(xiàn)

這里,我們需要先點(diǎn)擊上面的眼睛記錄我們后續(xù)的操作。然后你可以選中首頁(yè)按鈕,再點(diǎn)擊最右邊的Tap,即完成了首頁(yè)的刷新動(dòng)作,同時(shí)也會(huì)生成對(duì)應(yīng)的操作代碼:

Python使用Appium在移動(dòng)端抓取微博數(shù)據(jù)的實(shí)現(xiàn)

默認(rèn)生成的操作語(yǔ)言是Java,你可以通過(guò)上圖下拉選擇自己需要的語(yǔ)言。這里,博主選擇Python,畢竟講解的是Python爬蟲(chóng)。

雖然上面的代碼確實(shí)是操作手機(jī)App的代碼,但是你直接copy到python編輯器,肯定是無(wú)法運(yùn)行的,我們需要安裝Appium-Python-Client包:

pip install Appium-Python-Client

安裝完成之后,我們通過(guò)”from appium import webdriver“引入開(kāi)發(fā)包,然后就可以通過(guò)上面的代碼進(jìn)行App爬蟲(chóng)或者說(shuō)一系列動(dòng)作鏈的操作了。

這里,我們先來(lái)實(shí)現(xiàn)將剛才通過(guò)Appium的操作,全部轉(zhuǎn)換為代碼形式,具體代碼如下所示:

from appium import webdriverimport timeserver='http://localhost:4723/wd/hub'desired_caps = { 'platformName': 'Android', 'deviceName': 'liyuanjing', 'appPackage': 'com.sina.weibo', 'appActivity': 'com.sina.weibo.MainTabActivity',}driver=webdriver.Remote(server,desired_caps)time.sleep(10)el2 = driver.find_element_by_accessibility_id('首頁(yè)')el2.click()

如上面代碼所示,這樣我們就實(shí)現(xiàn)了通過(guò)軟件操作App的全部步驟。不過(guò),這里有一個(gè)小問(wèn)題,因?yàn)榇蜷_(kāi)App首次都是要賦予權(quán)限的,博主剛才手動(dòng)關(guān)了,并沒(méi)有錄制這個(gè)動(dòng)作。

所以,讀者可以自己把賦予權(quán)限的步驟也錄制進(jìn)去,那么就是全自動(dòng)了,這里作者偷個(gè)懶,就不錄制了。

爬取微博第一條信息

剛剛我們通過(guò)刷新的步驟,重新獲取了一遍微博首頁(yè)的內(nèi)容。現(xiàn)在,我們通過(guò)代碼來(lái)獲取首頁(yè)第一條微博的內(nèi)容。我們先來(lái)看看代碼:

from appium import webdriverimport timeserver = 'http://localhost:4723/wd/hub'desired_caps = { 'platformName': 'Android', 'deviceName': 'liyuanjing', 'appPackage': 'com.sina.weibo', 'appActivity': 'com.sina.weibo.MainTabActivity',}driver = webdriver.Remote(server, desired_caps)time.sleep(10)descs = driver.find_element_by_id('com.sina.weibo:id/contentTextView')print(descs.get_attribute('content-desc'))

這里,我們通過(guò)ID找到了第一條微博的控件,同時(shí)通過(guò)其屬性'content-desc'獲取到了微博的內(nèi)容。圖解效果如下:

Python使用Appium在移動(dòng)端抓取微博數(shù)據(jù)的實(shí)現(xiàn)

運(yùn)行之后,效果如下:

Python使用Appium在移動(dòng)端抓取微博數(shù)據(jù)的實(shí)現(xiàn)

當(dāng)然,這里之所以不同是因?yàn)槲覀兪謾C(jī)運(yùn)行代碼將微博界面又重新啟動(dòng)了一遍。不過(guò)這是我們手機(jī)運(yùn)行后的第一條微博的信息。

到此這篇關(guān)于Python使用Appium在移動(dòng)端抓取微博數(shù)據(jù)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python Appium抓取微博數(shù)據(jù)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: 微博 Python
相關(guān)文章:
主站蜘蛛池模板: 精品国产成a人在线观看 | 女人一级特纯黄大片色 | 亚洲视频在线观看 | 亚洲久草在线 | 日本一级特黄大一片免 | 色偷偷成人网免费视频男人的天堂 | 91久久国产口精品久久久久 | 亚洲自偷自拍另类12p | 香蕉一区二区三区观 | 9999视频| 色综合日韩 | 国产日b视频 | 美女黄视频在线观看 | 三级欧美 | 国内精品免费一区二区三区 | 欧美精品成人久久网站 | 黄a视频在线观看 | 波多野结衣中文一区二区免费 | 刺激一区仑乱 | 日本韩国台湾香港三级 | 黄色美女网站在线观看 | 狠狠色狠狠色综合 | 久久亚洲成人 | 91高清免费国产自产 | 成人在线播放 | 精品视频一区二区三区在线观看 | 九九99九九视频在线观看 | 久久久久久久久久免费视频 | 99国产精品热久久久久久夜夜嗨 | 综合久久久久久中文字幕 | 欧美高清性刺激毛片 | 国产精品网站 夜色 | 亚洲 欧美 国产 日韩 制服 bt | 日韩精品在线一区二区 | 日本高清在线中文字幕网 | 久久精品国产亚洲综合色 | 成年人网站在线观看免费 | 美女扒开腿让男生桶爽网站 | 91亚洲在线 | 91久久亚洲精品一区二区 | 免费在线国产视频 |