婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 用基于python的appium爬取b站直播消費記錄

用基于python的appium爬取b站直播消費記錄

熱門標簽:電話機器人貸款詐騙 打印谷歌地圖標注 電話外呼系統招商代理 淮安呼叫中心外呼系統如何 蘇州人工外呼系統軟件 京華圖書館地圖標注 佛山通用400電話申請 廣東旅游地圖標注 看懂地圖標注方法

基于python的Appium進行b站直播消費記錄爬取

之前看文章說fiddler也可以進行爬取,但嘗試了一下沒成功,這次選擇appium進行爬取。類似的,可以運用爬取微信朋友圈和抖音等手機app相關數據

正文

#環境配置參考

前期工作準備,需要安裝python、jdk、PyCharm、Appium-windows-x.x、Appium_Python_Client、Android SDK,pycharm可以用anaconda的jupyter來替代

具體可以參考這篇博客,講的算是很清楚啦

https://www.jb51.net/article/209859.htm

前期準備工作配置需要不停的安裝和配置環境變量,也是個相對枯燥的過程

完成以后就可以真正爬取啦

導入模塊

from appium import webdriver
import numpy as np
import pandas as pd
import time

通過程序打開手機b站app

desired_caps = {
    'platformName': 'Android',  # 被測手機是安卓
    'platformVersion': '10',  # 手機安卓版本
    'deviceName': 'xxx',  # 設備名,安卓手機可以隨意填寫
    'appPackage': 'tv.danmaku.bili',  # 啟動APP Package名稱
    'appActivity': '.ui.splash.SplashActivity',  # 啟動Activity名稱
    'unicodeKeyboard': True,  # 使用自帶輸入法,輸入中文時填True
    'resetKeyboard': True,  # 執行完程序恢復原來輸入法
    'noReset': True,  # 不要重置App,如果為False的話,執行完腳本后,app的數據會清空,比如你原本登錄了,執行完腳本后就退出登錄了
    'newCommandTimeout': 6000,
    'automationName': 'UiAutomator2'
}

打開b站

# 連接Appium Server,初始化自動化環境
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# 設置等待時間,如果不給時間的話可能會找不到元素
driver.implicitly_wait(4)

打開之后呈現如下頁面

在手機上點擊我的——我的直播——消費記錄,查看個人消費記錄,

當然也可以寫兩行代碼來實現這個過程(這里選擇跳過),如下圖所示

因為這個消費記錄很多,一個頁面只能顯示10條,要想爬取所有的可以設置滑動,邊向上滑動邊爬取就能獲取所有的數據。

具體參數設置的flick_distance=1050可以不重不漏的爬取,如下所示:

設置滑動

flick_start_x=540
flick_start_y=192
flick_distance=1050
while True:
    driver.swipe(flick_start_x,flick_start_y+flick_distance,flick_start_x,flick_start_y)

爬取

pay_name_list=[]
present_price_list=[]
pay_room_list=[]
pay_ru_name_list=[]
pay_time_list=[]
flick_start_x=540
flick_start_y=192
flick_distance=1050
while True:
    pay_name=driver.find_elements_by_id('pay_name')
    for i in range(len(pay_name)):
        pay_name_list.append(pay_name[i].text)
    present_price=driver.find_elements_by_id('present_price')
    for i in range(len(present_price)):
        present_price_list.append(present_price[i].text)
    pay_room=driver.find_elements_by_id('pay_room')
    for i in range(len(pay_room)):
        pay_room_list.append(pay_room[i].text)
    pay_ru_name=driver.find_elements_by_id('pay_ru_name')
    for i in range(len(pay_ru_name)):
        pay_ru_name_list.append(pay_ru_name[i].text)
    pay_time=driver.find_elements_by_id('pay_time')
    for i in range(len(pay_time)):
        pay_time_list.append(pay_time[i].text)
    driver.swipe(flick_start_x,flick_start_y+flick_distance,flick_start_x,flick_start_y)
    time.sleep(2)

轉換成dataframe

a=pd.DataFrame([pay_name_list,present_price_list,pay_room_list,pay_ru_name_list,pay_time_list],index=['pay_name_list','present_price_list','pay_room_list','pay_ru_name_list','pay_time_list'])
pd.DataFrame(a.T).head(50)

ok,這樣工作就都完成啦,繼續快樂的搬磚…

到此這篇用基于python的appium爬取b站直播消費記錄的文章就介紹到這了,更多相關python,appium的內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章,希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 如何用python抓取B站數據
  • 基于python對B站收藏夾按照視頻發布時間進行排序的問題
  • 教你如何使用Python下載B站視頻的詳細教程
  • 如何使用python爬取B站排行榜Top100的視頻數據

標簽:呼和浩特 衡水 畢節 湖州 駐馬店 江蘇 中山 股票

巨人網絡通訊聲明:本文標題《用基于python的appium爬取b站直播消費記錄》,本文關鍵詞  用,基于,python,的,appium,爬取,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《用基于python的appium爬取b站直播消費記錄》相關的同類信息!
  • 本頁收集關于用基于python的appium爬取b站直播消費記錄的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 新民市| 萨嘎县| 文山县| 双桥区| 美姑县| 丹凤县| 娄烦县| 松原市| 南华县| 伊通| 昭通市| 泗阳县| 同心县| 陆川县| 万安县| 奉贤区| 安西县| 边坝县| 阿拉善盟| 西藏| 桂平市| 武定县| 吕梁市| 丰城市| 赤城县| 东兰县| 龙里县| 宁晋县| 浠水县| 盐边县| 岳阳县| 江源县| 界首市| 左权县| 阿鲁科尔沁旗| 年辖:市辖区| 荃湾区| 长沙县| 东海县| 平顶山市| 卢湾区|