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

您的位置:首頁技術文章
文章詳情頁

Python使用Appium在移動端抓取微博數據的實現

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

Appium是移動端的自動化測試工具,讀者可以類比為PC端的selenium。通過它,我們可以驅動App完成自動化的一系列操作,同樣也可以爬取需要的內容。

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

安裝軟件的步驟非常簡單,就與大多數軟件安裝步驟一樣,這里不在贅述。

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

基礎的配置到這里就結束了。下面,我們來通過Appium軟件操作手機App。

查找Android App的Package和入口

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

Python使用Appium在移動端抓取微博數據的實現

如上圖所示,我們不需要更改任何參數,只需要點擊'Start Server v1.18.0'按鈕,進行登錄操作,登錄之后,會出現如下界面。

Python使用Appium在移動端抓取微博數據的實現

這里,我們點擊放大鏡即可。點擊之后,會出現步驟4的界面,我們需要在這里界面之中配置你需要操作或者說爬取的App。

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

Python使用Appium在移動端抓取微博數據的實現

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

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

然后,我們在打開其AndroidManifest.txt就可以看到微博的包名以及啟動界面的Activity名稱,具體如下所示:

Python使用Appium在移動端抓取微博數據的實現

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

Python使用Appium在移動端抓取微博數據的實現

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

Python使用Appium在移動端抓取微博數據的實現

可以看到,現在我們的微博手機界面已經在Appium軟件上顯示了。下面,我們可以使用上面的眼睛按鈕,監聽我們要操作的步驟,然后保存為一個動作鏈。

記錄微博刷新動作

在實際的微博中,我們通過下拉刷新微博界面。不過,其實還可以通過點擊底部的首頁按鈕進行刷新,記錄操作并生成Python代碼的步驟如下所示:

Python使用Appium在移動端抓取微博數據的實現

這里,我們需要先點擊上面的眼睛記錄我們后續的操作。然后你可以選中首頁按鈕,再點擊最右邊的Tap,即完成了首頁的刷新動作,同時也會生成對應的操作代碼:

Python使用Appium在移動端抓取微博數據的實現

默認生成的操作語言是Java,你可以通過上圖下拉選擇自己需要的語言。這里,博主選擇Python,畢竟講解的是Python爬蟲。

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

pip install Appium-Python-Client

安裝完成之后,我們通過”from appium import webdriver“引入開發包,然后就可以通過上面的代碼進行App爬蟲或者說一系列動作鏈的操作了。

這里,我們先來實現將剛才通過Appium的操作,全部轉換為代碼形式,具體代碼如下所示:

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('首頁')el2.click()

如上面代碼所示,這樣我們就實現了通過軟件操作App的全部步驟。不過,這里有一個小問題,因為打開App首次都是要賦予權限的,博主剛才手動關了,并沒有錄制這個動作。

所以,讀者可以自己把賦予權限的步驟也錄制進去,那么就是全自動了,這里作者偷個懶,就不錄制了。

爬取微博第一條信息

剛剛我們通過刷新的步驟,重新獲取了一遍微博首頁的內容。現在,我們通過代碼來獲取首頁第一條微博的內容。我們先來看看代碼:

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'))

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

Python使用Appium在移動端抓取微博數據的實現

運行之后,效果如下:

Python使用Appium在移動端抓取微博數據的實現

當然,這里之所以不同是因為我們手機運行代碼將微博界面又重新啟動了一遍。不過這是我們手機運行后的第一條微博的信息。

到此這篇關于Python使用Appium在移動端抓取微博數據的實現的文章就介紹到這了,更多相關Python Appium抓取微博數據內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: 微博 Python
相關文章:
主站蜘蛛池模板: 九九精品免费 | 久久在线免费观看视频 | 波多久久夜色精品国产 | 国产精品资源手机在线播放 | 一级做a爰全过程免费视频毛片 | 国产成人精品一区二区秒拍 | 国产一级毛片夜一级毛片 | 成年美女黄网站色大 | 在线视频一区二区三区在线播放 | 亚洲成人高清 | aaaa毛片| 免费观看一级成人毛片 | 一级毛片美国aaj毛片 | 成人在线视频免费看 | 一级片高清 | 欧美一区二区三区久久综合 | 国产精品毛片天天看片 | 久久99九九99九九精品 | 国产一级做a爰片在线 | 美女黄视频免费观看 | 美女视频一区二区三区在线 | 免费播放欧美毛片欧美a | 五月色婷婷综合开心网亚 | 在线中文字幕亚洲 | 成人午夜影院在线观看 | 一级做a爱过程免费观看 | 又摸又揉又黄又爽的视频 | 国产综合久久一区二区三区 | 成人18网址在线观看 | 久久青草免费免费91线频观看 | 99久久国产免费福利 | 国产三级视频在线播放 | 成年男女免费视频网站 | 久草在线中文视频 | 亚洲人成网站色7799在线观看 | 日韩成人免费在线视频 | 狠狠色综合久久丁香婷婷 | 九九视频国产 | 日韩中文字幕在线观看视频 | 欧美毛片性视频区 | 亚洲国产日韩女人aaaaaa毛片在线 |