京東の検証コードの基礎の上で、簡単なマスクのシナリオを書きます
大神の基础の上で、やっと京东を通じて(通って)検证して、今前のコードの基础の上で、简単なマスクのシナリオを书いて、コードは以下の通りです
参考知乎-パン君、python(4):秒抢シナリオ
import cv2
import time
import numpy as np
from selenium import webdriver
from urllib import request
from selenium.webdriver.common.action_chains import ActionChains
#
from selenium.webdriver.support import expected_conditions as EC #
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.keys import Keys
def loadpage(browser,username, password):
browser.get('https://item.jd.com/100006362015.html') #
try:
browser.find_element_by_link_text(' , ').click()
browser.find_element_by_class_name("login-tab.login-tab-r").click() #
browser.find_element_by_id("loginname").send_keys(username) # u
browser.find_element_by_id("nloginpwd").send_keys(password) # p
browser.find_element_by_id("loginsubmit").click() #
time.sleep(2)
while True:
try:
getPic(browser)
# failure = WebDriverWait(browser, 10, 2).until(EC.text_to_be_present_in_element((By.CLASS_NAME, 'JDJRV-slide-center'), ' '))
# print('failure')
except:
print(' ')
# loop(browser)
return None
# if failure:
# getPic(browser)
except:
print(' ')
return None
def getPic(browser):
#
s2 = r'//div/div[@class="JDJRV-bigimg"]/img'
#
s3 = r'//div/div[@class="JDJRV-smallimg"]/img'
bigimg = browser.find_element_by_xpath(s2).get_attribute("src")
smallimg = browser.find_element_by_xpath(s3).get_attribute("src")
# print(smallimg + '
')
# print(bigimg)
#
backimg = "backimg.png"
#
slideimg = "slideimg.png"
#
request.urlretrieve(bigimg, backimg)
#
request.urlretrieve(smallimg, slideimg)
#
block = cv2.imread(slideimg, 0)
template = cv2.imread(backimg, 0)
# #
blockName = "block.jpg"
templateName = "template.jpg"
#
cv2.imwrite(blockName, block)
cv2.imwrite(templateName, template)
block = cv2.imread(blockName)
block = cv2.cvtColor(block, cv2.COLOR_RGB2GRAY)
block = abs(255 - block)
cv2.imwrite(blockName, block)
block = cv2.imread(blockName)
template = cv2.imread(templateName)
#
result = cv2.matchTemplate(block, template, cv2.TM_CCOEFF_NORMED) # block template , result ,
x, y = np.unravel_index(result.argmax(), result.shape)
print(' ')
#
element = browser.find_element_by_xpath(s3)
ActionChains(browser).click_and_hold(on_element=element).perform()
ActionChains(browser).move_to_element_with_offset(to_element=element, xoffset=y*4/5, yoffset=0).perform() # y y*4/5
time.sleep(0.2) #
ActionChains(browser).move_to_element_with_offset(to_element=element, xoffset=y-y*4/5, yoffset=0).perform() # ,
# time.sleep(0.1) #
# ActionChains(browser).move_to_element_with_offset(to_element=element, xoffset=y-y*8/10, yoffset=0).perform()
# time.sleep(0.1) #
# ActionChains(browser).move_to_element_with_offset(to_element=element, xoffset=y-y * 17 / 20, yoffset=0).perform()
ActionChains(browser).release(on_element=element).perform()
time.sleep(1)
#
def loop(browser):
browser.find_element_by_link_text(" ").click()
# time.sleep (1)
browser.find_element_by_link_text(" ").click()
# time.sleep(1)
num=browser.find_element_by_xpath('/html/body/div[4]/div[2]/div/div[1]/div/div[2]/div[1]/div/div[2]/div[1]/div[1]/div[5]/div[1]/input[@class="itxt"]')
num.send_keys(Keys.CONTROL+'a')
num.send_keys('1')
browser.find_element_by_xpath('/html/body/div[4]/div[2]/div/div[2]/div/div/div/div[2]/div[4]/div[1]/div/div[@class="amount-sum"]').click()
# time.sleep(1)
browser.find_element_by_link_text(" ").click()
while True:
try:
if browser.title==' - ':
# js = "var q=document.documentElement.scrollTop=100000"
# browser.execute_script(js)
time.sleep(1)
browser.find_element_by_id('order-submit').click()
return None
else:# ,
browser.get('https://item.jd.com/100006362015.html')
time.sleep(3)
loop(browser) # ?
except Exception as e: # ,
time.sleep(1)
refresh_(browser)
def refresh_(browser):
try:
if browser.title == ' - ':
# js = "var q=document.documentElement.scrollTop=100000"
# browser.execute_script(js)
# time.sleep(2)
browser.find_element_by_id('order-submit').click()
return None
else: # ,
browser.get('https://item.jd.com/100006362015.html')
time.sleep(3)
loop(browser) # ?
except Exception as e: # ,
browser.refresh()
time.sleep(1)
return refresh_(browser)
# ,
browser = webdriver.Firefox()
loadpage(browser,'****','****') #
time.sleep(3)
loop(browser)
参考知乎-パン君、python(4):秒抢シナリオ