91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 服務器 > 
  • 云計算 > 
  • 「docker實戰篇」python的docker-打造多任務端app應用數據抓取系統(上)(34)

「docker實戰篇」python的docker-打造多任務端app應用數據抓取系統(上)(34)

發布時間:2020-07-02 22:24:36 來源:網絡 閱讀:525 作者:IT人故事 欄目:云計算

上次說了如果通過dockerfile創建docker的鏡像,接下來老鐵們咱們通過創建好的鏡像,創建容器,并且將代碼映射到容器當中去,最終完成多任務端app抓取系統。源碼:https://github.com/limingios/dockerpython.git (源碼/「docker實戰篇」python的docker-docker系統管理-基礎概念(27))

「docker實戰篇」python的docker-打造多任務端app應用數據抓取系統(上)(34)

任務需求詳解

需要抓取三款應用的抖音,快手,今日頭條,具體需要抓取的內容

1.抓取抖音當前視頻的作者數據
2.抓取快手當前視頻的作者數據
3.抓取今日頭條推薦板塊新聞

  • 代碼部分–python-appium-docker源碼里面有
    >python執行python部分的代碼

#!/usr/bin/env?python
#?-*-?coding:?utf-8?-*-
#?@Time????:?2019/3/18?20:31
#?@Author??:?Aries
#?@Site????:?
#?@File????:?handle_appium_docker.py
#?@Software:?PyCharm

import?multiprocessing
import?time
from?appium?import?webdriver
from?selenium.webdriver.support.wait?import??WebDriverWait

def?get_size(driver):
????x?=?driver.get_window_size()['width']
????y?=?driver.get_window_size()['height']
????return?(x,?y)

def?handle_appium(info):
????cap?=?{
????????"platformName":?"Android",
????????"platformVersion":?"4.4.2",
????????"deviceName":info['device'],
????????"udid":?info['device'],
????????"appPackage":?info['appPackage'],
????????"appActivity":?info['appActivity'],
????????"noReset":?True,
????????"unicodeKeyboard":?True,
????????"resetkeyboard":?True
????}
????driver?=?webdriver.Remote("http://192.168.199.140:"?+?str(info["port"])?+?"/wd/hub",?cap)

????l?=?get_size(driver)
????x1?=?int(l[0]?*?0.5)
????y1?=?int(l[1]?*?0.15)
????y2?=?int(l[1]?*?0.9)

????#抖音
????if?info["appPackage"]?==?"com.ss.andrpid.ugc.aweme":
????????#根據實際的我這里直接寫//android,通過
????????if?WebDriverWait(driver,60).until(lambda?x:x.find_element_by_xpath("http://android")):
????????????while?True:
????????????????#?初始鼠標位置,從哪里開始,結束時鼠標位置,到哪里結束
????????????????driver.swipe(x1,y1,x1,y2)
????????????????time.sleep(3)

????#快手
????if?info["appPackage"]?==?"com.smile.gifmaker":
????????#?根據實際的我這里直接寫//android
????????if?WebDriverWait(driver,?60).until(lambda?x:?x.find_element_by_xpath("http://android")):
????????????while?True:
????????????????#?初始鼠標位置,從哪里開始,結束時鼠標位置,到哪里結束
????????????????driver.swipe(x1,?y1,?x1,?y2)
????????????????time.sleep(3)

????#快手
????if?info["appPackage"]?==?"com.ss.android.article.news":
????????#?根據實際的我這里直接寫//android
????????if?WebDriverWait(driver,?60).until(lambda?x:?x.find_element_by_xpath("http://android")):
????????????while?True:
????????????????#初始鼠標位置,從哪里開始,結束時鼠標位置,到哪里結束
????????????????driver.swipe(x1,?y1,?x1,?y2)
????????????????time.sleep(3)

if?__name__?=='__main__':
????m_list?=?[]
????devices_list?=?[
????????{
????????????????"device":?"192.168.199.133:5555",
????????????????"appPackage":?"com.ss.android.ugc.aweme",
????????????????"appActivity":?"com.ss.android.ugc.aweme.main.MainActivity",
????????????????"port":?4723,
????????????????"key":?'抖音'
????????},
????????{
????????????????"device":?"192.168.199.133:5555",
????????????????"appPackage":?"com.smile.gifmaker",
????????????????"appActivity":?"com.yxcorp.gifshow.HomeActivity",
????????????????"port":?4725,
????????????????"key":?'快手'
????????},
????????{
????????????????"device":?"192.168.199.133:5555",
????????????????"appPackage":?"com.ss.android.article.news",
????????????????"appActivity":?"com.ss.android.article.news.activity.SplashBadgeActivity",
????????????????"port":?4727,
????????????????"key":?'今日頭條'
????????}
????]

for?device?in?(devices_list):
????m_list.append(multiprocessing.Process(target=handle_appium,args=(device,)))

for?m1?in?m_list:
????m1.start()

「docker實戰篇」python的docker-打造多任務端app應用數據抓取系統(上)(34)

  • 代碼部分–decode_data源碼里面有
    >python執行python部分的代碼 通過mitmdump 獲取數據保存在mongodb中。

#!/usr/bin/env?python
#?-*-?coding:?utf-8?-*-
#?@Time????:?2019/3/18?19:57
#?@Author??:?Aries
#?@Site????:?
#?@File????:?decode_data.py
#?@Software:?PyCharm

import?json
from?handle_mongo?import?mongo_info


def?response(flow):
????#抖音
????if?'aweme.snssdk.com/aweme/v1/feed'?in?flow.request.url:
????????douyin_data_dict?=?json.loads(flow.response.text)
????????for?douyin_item?in?douyin_data_dict['aweme_list']:
????????????mongo_info.insert_item(douyin_item)

????#快手
????elif?'api.gifshow.com/rest/n/feed/hot'?in??flow.request.url:
????????kuaishou_data_dict?=?json.loads(flow.response.text)
????????for?kuaishou_item?in?kuaishou_data_dict['feeds']:
????????????mongo_info.insert_item(kuaishou_item)

????#今日頭條
????elif?'is.snssdk.com/api/news/feed'?in?flow.request.url:
????????jrtt_data_dict?=?json.loads(flow.response.text)
????????for?kuaishou_item?in?jrtt_data_dict['feeds']:
????????????mongo_info.insert_item(kuaishou_item)

「docker實戰篇」python的docker-打造多任務端app應用數據抓取系統(上)(34)

部署工作

python 爬蟲獲取信息其實不難,最難的是部署環境上。

  • 虛擬機直接用vagrant的方式

    源碼里面包括vagrant文件,想了解如何使用可以查看我的中級文章講解很詳細

  • 鏡像下載

    下載mongodb的鏡像,Appium的鏡像,zhugeaming/python3-appium的鏡像

1.mongodb的鏡像

mkdir?bitnami
cd?bitnami
mkdir?mongodb
docker?run?-d?-v?/path/to/mongodb-persistence:/root/bitnami?-p?27017:27017?bitnami/mongodb:latest

2.Appium的鏡像

docker?search?appium
#比較大1個多g,因為之前已經設置了加速器,根據自身的網速來進行下載。
docker?pull?appium/appium

3.zhugeaming/python3-appium的鏡像

docker?pull?zhugeaming/python3-appium

「docker實戰篇」python的docker-打造多任務端app應用數據抓取系統(上)(34)

  • 網絡連接
    > 之前在【「docker實戰篇」python的docker-創建appium容器以及設置appium容器連接安卓模擬器(30)】里面說過一種比較變態的方法,讓安卓模擬器連接虛擬機內部的dockerapium,但是這種適合vagrant的。建議還用這種吧已經驗證了。

1.vagrant創建的虛擬機都是通過virtual box
「docker實戰篇」python的docker-打造多任務端app應用數據抓取系統(上)(34)

2.設置共享文件夾
「docker實戰篇」python的docker-打造多任務端app應用數據抓取系統(上)(34)

「docker實戰篇」python的docker-打造多任務端app應用數據抓取系統(上)(34)

「docker實戰篇」python的docker-打造多任務端app應用數據抓取系統(上)(34)

這是windows的環境下

「docker實戰篇」python的docker-打造多任務端app應用數據抓取系統(上)(34)

「docker實戰篇」python的docker-打造多任務端app應用數據抓取系統(上)(34)

3.在虛擬機掛載,將共享的文件夾掛載到虛擬機里面來

記住這個共享文件夾的名稱叫handle_docker

「docker實戰篇」python的docker-打造多任務端app應用數據抓取系統(上)(34)

mkdir?docker
cd?docker
sudo?yum?update?&&?sudo?yum?-y?install?kernel-headers?kernel-devel
sudo?mount?-t?vboxsf?handle_docker?/root/docker/

「docker實戰篇」python的docker-打造多任務端app應用數據抓取系統(上)(34)

PS:基本文件都掛載好了,已經很晚了,下次咱們繼續把環境跑起來。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿尔山市| 务川| 长岭县| 永平县| 巴林左旗| 新丰县| 巴南区| 普安县| 墨玉县| 桑日县| 张家界市| 贵溪市| 忻州市| 岐山县| 即墨市| 交口县| 甘肃省| 张家界市| 肥乡县| 垫江县| 宜兰县| 霞浦县| 筠连县| 车险| 梅河口市| 洪雅县| 康马县| 阜新| 大同县| 大田县| 双牌县| 江陵县| 美姑县| 石狮市| 左云县| 北票市| 宁德市| 桐城市| 开鲁县| 龙川县| 乐清市|