真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

「docker實(shí)戰(zhàn)篇」python的docker爬蟲技術(shù)-appium+python實(shí)戰(zhàn)(18)

原創(chuàng)文章,歡迎轉(zhuǎn)載。轉(zhuǎn)載請注明:轉(zhuǎn)載自IT人故事會,謝謝!
原文鏈接地址:「docker實(shí)戰(zhàn)篇」python的docker爬蟲技術(shù)-appium+python實(shí)戰(zhàn)(18)

創(chuàng)新互聯(lián)建站是一家專業(yè)提供屏南企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)H5頁面制作、小程序制作等業(yè)務(wù)。10年已為屏南眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。

上次通過appium進(jìn)行了,錄制腳本的功能,而且還可以進(jìn)行轉(zhuǎn)換成python,java,js等等語言的,這次實(shí)戰(zhàn)下,從登陸,到進(jìn)入某個頁面操作獲取信息。
源碼:https://github.com/limingios/dockerpython.git

「docker實(shí)戰(zhàn)篇」python的docker爬蟲技術(shù)-appium+python實(shí)戰(zhàn)(18)

流程代碼

1.點(diǎn)擊跳過導(dǎo)航頁面,進(jìn)入登錄頁面
2.輸入用戶名和密碼,點(diǎn)擊登錄
3.進(jìn)入頁面點(diǎn)擊同意,點(diǎn)擊研迅
4.模擬手勢,上移

  • 準(zhǔn)備工作
    1. 安裝【考研幫】

「docker實(shí)戰(zhàn)篇」python的docker爬蟲技術(shù)-appium+python實(shí)戰(zhàn)(18)

2.設(shè)置-應(yīng)用-點(diǎn)擊【考研幫】-清除數(shù)據(jù)

「docker實(shí)戰(zhàn)篇」python的docker爬蟲技術(shù)-appium+python實(shí)戰(zhàn)(18)

  1. 啟動【考研幫】

「docker實(shí)戰(zhàn)篇」python的docker爬蟲技術(shù)-appium+python實(shí)戰(zhàn)(18)

  1. 啟動直接adb中的uiautomatorviewer.bat 記得看看下載源碼包里面的增強(qiáng)版

「docker實(shí)戰(zhàn)篇」python的docker爬蟲技術(shù)-appium+python實(shí)戰(zhàn)(18)

5.看到uiautomatorviewer 和 夜神模擬器

「docker實(shí)戰(zhàn)篇」python的docker爬蟲技術(shù)-appium+python實(shí)戰(zhàn)(18)

6.appium啟動

「docker實(shí)戰(zhàn)篇」python的docker爬蟲技術(shù)-appium+python實(shí)戰(zhàn)(18)

  • 編寫代碼

#!/usr/bin/env python

-- coding: utf-8 --

@Time : 2019/1/22 20:15

@Author : Aries

@Site :

@File : yankao.py

@Software: PyCharm

#pip3 install Appium-Python-Client
import time
from appium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
cap = {
"platformName": "Android",
"platformVersion": "5.1.1",
"deviceName": "127.0.0.1:62001",
"appPackage": "com.tal.kaoyan",
"appActivity": "com.tal.kaoyan.ui.activity.SplashActivity",
"noReset": True
}

driver = webdriver.Remote("http://localhost:4723/wd/hub",cap)

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

#導(dǎo)航點(diǎn)擊跳過
try:
#是否跳過
if WebDriverWait(driver,3).until(lambda x:x.find_element_by_xpath("http://android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.TextView[1]")):
driver.find_element_by_xpath("http://android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.TextView[1]").click()
except:
pass

try:
if WebDriverWait(driver,3).until(lambda x:x.find_element_by_xpath("http://android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.ScrollView[1]/android.widget.LinearLayout[1]/android.widget.EditText[1]")):
driver.find_element_by_xpath("http://android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.ScrollView[1]/android.widget.LinearLayout[1]/android.widget.EditText[1]").send_keys("idig8")
driver.find_element_by_xpath("http://android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.ScrollView[1]/android.widget.LinearLayout[1]/android.widget.EditText[2]").send_keys("3989441")
driver.find_element_by_xpath("http://android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.ScrollView[1]/android.widget.LinearLayout[1]/android.widget.Button[1]").click()
except:
pass

#隱私協(xié)議
try:
#隱私協(xié)議
if WebDriverWait(driver,3).until(lambda x:x.find_element_by_xpath("http://android.widget.TextView[@resource-id='com.tal.kaoyan:id/tv_agree']")):driver.find_element_by_xpath("http://android.widget.TextView[@resource-id='com.tal.kaoyan:id/tv_agree']").click()
br/>driver.find_element_by_xpath("http://android.widget.TextView[@resource-id='com.tal.kaoyan:id/tv_agree']").click()
except:
pass

#點(diǎn)擊研訊
if WebDriverWait(driver,3).until(lambda x:x.find_element_by_xpath("http://android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.support.v4.view.ViewPager[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[2]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.support.v4.view.ViewPager[1]/android.widget.FrameLayout[1]/android.widget.RelativeLayout[1]/android.support.v7.widget.RecyclerView[1]/android.widget.LinearLayout[1]/android.support.v7.widget.RecyclerView[1]/android.widget.RelativeLayout[3]/android.widget.LinearLayout[1]/android.widget.ImageView[1]")):
driver.find_element_by_xpath("http://android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.support.v4.view.ViewPager[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[2]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.support.v4.view.ViewPager[1]/android.widget.FrameLayout[1]/android.widget.RelativeLayout[1]/android.support.v7.widget.RecyclerView[1]/android.widget.LinearLayout[1]/android.support.v7.widget.RecyclerView[1]/android.widget.RelativeLayout[3]/android.widget.LinearLayout[1]/android.widget.ImageView[1]").click()

l = get_size()

x1 = int(l[0]*0.5)
y1 = int(l[1]*0.75)
y2 = int(l[1]*0.25)

#滑動操作
while True:
    driver.swipe(x1,y1,x1,y2)
    time.sleep(0.5)


注意點(diǎn):
1.xpath 通過uiautomatorviewer 點(diǎn)擊查看

![](/upload/otherpic47/11223715-a88d201baa566c1b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

2.python在運(yùn)行過程中如果進(jìn)行uiautomatorviewer加載會報錯
3.python在使用的過程中需要先引入
    from appium import webdriver
    from selenium.webdriver.support.ui import WebDriverWait
4.前提是啟動的appium:提示:The server is running

![](/upload/otherpic47/11223715-b173c522071c521b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

5.里面有幾個需要注意的套路:

>appium服務(wù)的遠(yuǎn)程調(diào)用

webdriver.Remote("http://localhost:4723/wd/hub",cap)

>判斷xpath是否存在

if WebDriverWait(driver,3).until(lambda x:x.find_element_by_xpath("'路徑")):

>輸入框復(fù)制

 driver.find_element_by_xpath("路徑").send_keys("填入數(shù)據(jù)")

>按鈕點(diǎn)擊

 driver.find_element_by_xpath("路徑").click()

>模擬手勢上啦,先獲取屏幕的寬高,然后通過driver.swipe(x1,y1,x1,y2) 從指定的(x1,y1)坐標(biāo)到(x2,y2)

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

l = get_size()
x1 = int(l[0]*0.5)
y1 = int(l[1]*0.75)
y2 = int(l[1]*0.25)
driver.swipe(x1,y1,x1,y2)

PS:最后實(shí)現(xiàn)了如何從登陸到點(diǎn)擊研迅,模擬手指,拉下加載的功能。

網(wǎng)頁標(biāo)題:「docker實(shí)戰(zhàn)篇」python的docker爬蟲技術(shù)-appium+python實(shí)戰(zhàn)(18)
轉(zhuǎn)載注明:http://weahome.cn/article/ihscec.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部