最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

用基于python的appium爬取b站直播消費(fèi)記錄

 更新時間:2021年04月16日 16:43:40   作者:mister1  
因工作需要,需要爬取相關(guān)數(shù)據(jù),之前是爬取網(wǎng)頁數(shù)據(jù),可以用python的requests和Selenium進(jìn)行爬取。但b站的直播消費(fèi)數(shù)據(jù)網(wǎng)頁版不能顯示,只能在手機(jī)上看到,所以就有了這篇文章。需要的朋友可以參考下

基于python的Appium進(jìn)行b站直播消費(fèi)記錄爬取

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

正文

#環(huán)境配置參考

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

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

http://m.fzitv.net/article/209859.htm

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

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

導(dǎo)入模塊

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

通過程序打開手機(jī)b站app

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

打開b站

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

打開之后呈現(xiàn)如下頁面

在這里插入圖片描述

在手機(jī)上點(diǎn)擊我的——我的直播——消費(fèi)記錄,查看個人消費(fèi)記錄,

當(dāng)然也可以寫兩行代碼來實(shí)現(xiàn)這個過程(這里選擇跳過),如下圖所示

在這里插入圖片描述

因?yàn)檫@個消費(fèi)記錄很多,一個頁面只能顯示10條,要想爬取所有的可以設(shè)置滑動,邊向上滑動邊爬取就能獲取所有的數(shù)據(jù)。

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

設(shè)置滑動

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)

在這里插入圖片描述

轉(zhuǎn)換成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,這樣工作就都完成啦,繼續(xù)快樂的搬磚…

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

相關(guān)文章

  • 以文檔處理為例講解豆包API調(diào)用教程(Python)

    以文檔處理為例講解豆包API調(diào)用教程(Python)

    這篇文章主要介紹了如何在Linux服務(wù)器上配置和使用豆包大模型的API,通過API處理200萬字的文檔,展現(xiàn)了技術(shù)的發(fā)展和應(yīng)用,需要的朋友可以參考下
    2025-01-01
  • tensorflow tf.train.batch之?dāng)?shù)據(jù)批量讀取方式

    tensorflow tf.train.batch之?dāng)?shù)據(jù)批量讀取方式

    今天小編就為大家分享一篇tensorflow tf.train.batch之?dāng)?shù)據(jù)批量讀取方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 如何在Python中捕獲finally語句中異常消息

    如何在Python中捕獲finally語句中異常消息

    正常情況下,finally語句不會捕獲異常,而是在異常處理完成后執(zhí)行,那么如何在Python中捕獲finally語句中異常消息呢,下面小編就來和大家詳細(xì)聊聊
    2024-02-02
  • python cumsum函數(shù)的具體使用

    python cumsum函數(shù)的具體使用

    這篇文章主要介紹了python cumsum函數(shù)的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python連接FTP服務(wù)器的實(shí)現(xiàn)方法

    python連接FTP服務(wù)器的實(shí)現(xiàn)方法

    本文主要介紹了python連接FTP服務(wù)器的實(shí)現(xiàn)方法,主要使用ftp操作進(jìn)行連接FTP服務(wù)器、獲取當(dāng)前目錄文件清單、上傳文件等操作,具有一定的參考價值,感興趣的可以了解一下
    2022-06-06
  • Python處理mysql特殊字符的問題

    Python處理mysql特殊字符的問題

    今天小編就為大家分享一篇Python處理mysql特殊字符的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python如何實(shí)現(xiàn)機(jī)器人聊天

    Python如何實(shí)現(xiàn)機(jī)器人聊天

    這篇文章主要介紹了Python如何實(shí)現(xiàn)機(jī)器人聊天,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-09-09
  • python使用cookielib庫示例分享

    python使用cookielib庫示例分享

    Python中cookielib庫(python3中為http.cookiejar)為存儲和管理cookie提供客戶端支持,下面是使用示例
    2014-03-03
  • Python三百行代碼實(shí)現(xiàn)飛機(jī)大戰(zhàn)

    Python三百行代碼實(shí)現(xiàn)飛機(jī)大戰(zhàn)

    飛機(jī)大戰(zhàn)想必大家可能玩過微信的這款小游戲,給我的感覺是這款游戲怎么可以做得這么好呢,操作簡單,容易上手,簡直是“老少皆宜”啊,既然這款游戲這么棒,能否自己動手用 Python 來實(shí)現(xiàn)呢?事實(shí)證明是可以的
    2022-09-09
  • Python?pip更新的兩種方式詳解

    Python?pip更新的兩種方式詳解

    Pip是用于管理Python軟件包的常用命令,Pip命令還用于更新/升級已經(jīng)安裝的Python軟件包,下面這篇文章主要給大家介紹了關(guān)于Python?pip更新的兩種方式,需要的朋友可以參考下
    2023-02-02

最新評論

梁山县| 稻城县| 八宿县| 湾仔区| 桑日县| 乐清市| 应城市| 信宜市| 资溪县| 白河县| 西藏| 沧州市| 曲周县| 金坛市| 高雄市| 大荔县| 达州市| 土默特右旗| 兰考县| 灵寿县| 丰宁| 乐至县| 大化| 屯留县| 永新县| 连南| 崇文区| 黄冈市| 丹江口市| 东阳市| 金门县| 安远县| 海盐县| 大田县| 崇左市| 龙川县| 安西县| 丘北县| 墨玉县| 龙胜| 陆川县|