• 搜索
官方微信群 扫码添加,拉你进群
订阅号
服务号
跨境资讯

为你推送和解读最前沿、最有料的跨境电商资讯

90% 亚马逊卖家都在关注的微信公众号

精选今日跨境电商头条资讯

1020亿美元!这个带有中国“影子”的市场崛起ing

网商动力
跨境电商,致力于提供一手资讯、干货知识。
2018-12-11 18:40:25
8



哈喽,之前为大家介绍了Selenium的基本用法,使用Selenium获取网页源码再解析数据的方式来完成数据的爬取。

除此之外,它还有更多的进阶功能,今天在这里就位大家介绍用Selenium的鼠标键盘操作(ActionChains)和使用Selenium实现验证码破解。

仔细往下看,你会发现很多所谓的黑科技原来你也可以实现!



PART

01


用Selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击、双击、点击鼠标右键、拖拽等等。而Selenium给我们提供了一个类来处理这类事件——ActionChains。


selenium.webdriver.common.action_chains.ActionChains(driver)


ActionChains类基本能够满足我们所有对鼠标操作的需求。


以下是罗列的ActionChains方法:


# 单击鼠标左键
click(
on_element=None)
# 点击鼠标左键,不松开
click_and_hold(
on_element=None)
# 点击鼠标右键
context_click(
on_element=None)
# 双击鼠标左键
double_click(
on_element=None)
# 拖拽到某个元素然后松开
drag_and_drop(source
, target)
# 拖拽到某个坐标然后松开
drag_and_drop_by_offset
(source
, xoffset, yoffset)
# 按下某个键盘上的键
key_down(value
, element=None)
# 松开某个键
key_up(value
, element=None)
# 鼠标从当前位置移动到某个坐标

move_by_offset(xoffset
, yoffset)
# 鼠标移动到某个元素
move_to_element(to_element)
# 移动到距某个元素(左上角坐标)多少距离的位置
move_to_element_with_offset
(to_element
, xoffset, yoffset)
# 执行链中的所有动作
perform()
# 在某个元素位置松开鼠标左键
release(
on_element=None)
# 发送某个键到当前焦点的元素
send_keys(*keys_to_send)
# 发送某个键到指定元素
send_keys_to_element
(element
, *keys_to_send)


PART

02


接下来用亚马逊相关事例,来详细说明和演示每一个方法的用法:


1、点击操作:打开亚马逊→搜索“echo→自动翻页。


import time
from selenium import webdriver
# 生成浏览器对象
browser = webdriver.Firefox()
# 使浏览器访问 https://www.amazon.com/。
browser.get('https://www.amazon.com/')
# 找到亚马逊的搜索框并输入‘echo’。
browser.find_element_by_xpath
(
'//*[@id="twotabsearchtextbox"]')
.send_keys(
'echo')
# 输入‘echo'后点击放大镜标志的搜索按钮。
browser.find_element_by_xpath
(
'//*[@id="nav-search"]/form/div[2]
/div/input'
).click()
# 在每页停顿5秒后,点击翻页按钮。
while True:
    time.sleep(
5)
    browser.find_element_by_xpath
    (
'//*[@id="pagnNextString"]').click()


2、标移动:打开亚马逊→将鼠标移动到切换语言的按钮上→将鼠标移动到登陆按钮上。


import time
from selenium import webdriver
from selenium.webdriver.common.
action_chains
import ActionChains
# 生成浏览器对象
browser = webdriver.Firefox()
# 使浏览器访问 https://www.amazon.com/。
browser.get('https://www.amazon.com/')
# 找到亚马逊主页切换语言的element。
language = browser.find_element_by_xpath
(
'//*[@id="icp-nav-flyout"]')
# 找到亚马逊主页登陆的element。
sign_in = browser.find_element_by_xpath
(
'//*[@id="nav-link-accountList"]')
# 生成ActionChains对象。
action = ActionChains(browser)
# 将鼠标移动到亚马逊主页切换语言的element。
action.move_to_element(language).perform()
time.sleep(
5)
# 将鼠标移动到亚马逊主页登陆的element。
action.move_to_element(sign_in).perform()
time.sleep(
5)
# 将鼠标移动到亚马逊主页登陆的element。
action.move_to_element(sign_in).perform()
time.sleep(
5)


3、拖拽:将亚马逊主页的Logo拖入搜索框中。(可用于破解滑块验证码中)


from selenium import webdriver
from selenium.webdriver.common.
action_chains
import ActionChains
# 生成浏览器对象
browser = webdriver.Firefox()
# 使浏览器访问 https://www.amazon.com/。
browser.get('https://www.amazon.com/')
# 找到亚马逊主页搜索框左边的亚马逊LOGO。
logo = browser.find_element_by_xpath
(
'/html/body/div[1]/header/div
/div[1]/div[1]/div/a/span[1]'
)
# 找到亚马逊搜索框
Search_Bar = browser.find_element_by_xpath
(
'//*[@id="twotabsearchtextbox"]')
# 将亚马逊logo移动到搜索框
action = ActionChains(browser)
action.drag_and_drop
(logo
, Search_Bar).perform()


温馨提示:拖拽使用时注意加等待时间,有时会因为速度太快而失败。

——贴心的小编




4、截图:配合打码平台破解亚马逊验证码。


from selenium import webdriver
from selenium.webdriver.common.
action_chains
import ActionChains
# 生成浏览器对象
browser = webdriver.Firefox()
# 使浏览器访问 https://www.amazon.com/。
browser.get('https://www.amazon.com/')
# 获取当前浏览器title
title = browser.title
# 如果浏览器title 等于 “Robot Check”
if title == 'Robot Check':
   
# 找到验证码图片element
   
code_image_div = browser.find_element_
    by_xpath(
'/html/body/div/div[1]/div[3]
    /div/div/form/div[1]/div/div/div[1]/img'
)
   
# 截取验证码图片,并以"code.png"命名保存。
   
code_image_div.screenshot('code.png')
   
# 对接打码平台 上传验证码图片。
   
rc = RClient('username',
    'password', '105391', 'softid')
    im1 =
open('a.png', 'rb').read()
   
print("正在识别验证码...")
   
# 获取返回的验证码
   
response = (rc.rk_create(im1, 2060))
    code = response[
'Result']
   
print('验证码为:' + code)
   
# 找到验证码输入框并输入验证码
   
browser.find_element_by_xpath
   (
'//*[@id="captchacharacters"]')
    .send_keys(code)
   
# 点击 确定 按钮。
   
browser.find_element_by_xpath
    (
'/html/body/div/div[1]/div[3]
    /div/d
iv/form/div[2]/
   div/span/span/button'
).click()


有了以上这些方法,我相信已经有一些同学想到用它们干什么了吧?方法有了,看你自己怎么使用它哦!


PART

03


简单一句就是Selenium可以完成大多数跟真人一样的操作。

你可以在写好程序后冲一杯咖啡,静静的看着它帮你完成点击、浏览的操作,就算出现验证码也阻挡不了它!


以上就是selenium鼠标键盘操作(ActionChains)的大部分功能以及破解亚马逊验证码的实现,有兴趣的读者朋友可以深入研究,将它利用到实际工作中。


END


二维码
我们建了一个亚马逊卖家交流群,里面不乏很多大卖家。
现在扫码回复“ 加群 ”,拉你进群。
目前30万+人已关注加入我们
声明:此文章来源于网络,不代表网商动力立场。如有侵权,请联系我们。
快给朋友分享吧!
0 赞
最新
【卖方通跨境早报】亚马逊占据德国电商市场56%份额;亚马逊销售额大多来自于第三方卖家;eBay发布有害物质刊登新规
【卖方通跨境早报】亚马逊占据德国电商市场56%份额;亚马逊销售额大多来自于第三方卖家;eBay发布有害物质刊登新规
5月29日 周一《卖方通》>>>跨境早报60秒 知晓跨境电商大小事情!【05.31】-【舞动八闽 品耀全球】亚马逊全球开店卖家峰会报名链接:http://mtw.so/68757h 1.根据HDE...
冲上亚马逊热销榜!TikTok又带火一波家居产品!
冲上亚马逊热销榜!TikTok又带火一波家居产品!
卖方通获悉,在TikTok病毒式短视频的传播下,亚马逊上的一些创意家居产品持续爆火。以下这几款产品,销量呈持续上升趋势。 一、Shave Well防雾浴室镜 这款产品凭借其优...
Tokopedia美容和个人护理类目销量翻倍!热卖产品公布!
Tokopedia美容和个人护理类目销量翻倍!热卖产品公布!
卖方通获悉,近日,Tokopedia报告说,由于防疫措施解除,人们恢复户外活动,彩妆和护肤品的需求大增。 虽然疫情已经结束,但印尼人仍然依赖网上购物。一项调查显示,2023年,印尼...
Asos达成再融资协议!融资7500万英镑!
Asos达成再融资协议!融资7500万英镑!
卖方通获悉,Asos已从股东那里筹集了7500万英镑,并达成了一项基于资产的贷款再融资协议,以加强其资产负债表。这家零售商目前正处于巨额亏损的扭亏为盈计划中,已与专业...
全是商标维权案!GBC新代理CHRYSLER 克莱斯勒汽车超多商标维权和化妆品商标COLOURPOP立案维权!
全是商标维权案!GBC新代理CHRYSLER 克莱斯勒汽车超多商标维权和化妆品商标COLOURPOP立案维权!
CHRYSLER 克莱斯勒汽车23-cv-3304/3308 CHRYSLER 克莱斯勒汽车FCA US LLCGBC品牌介绍原告FCA US LLC是一家跨国汽车制造公司,是世界上最大的汽车制造商之一,在美国...
干货|活动期间网站如何配合烘托促销气氛
干货|活动期间网站如何配合烘托促销气氛
旺季来临,大多独立站都在为产品提供优惠,这是提高网站转化率以及培养客户忠诚度的有效途径。不过我们发现,尽管有些独立站折扣力度高达60%,但是进入网站后并没有凸显...
Copyright ? 2016-2022 ? ? 亚马逊卖家导航? ? 晋ICP备20005961号-2 声明:网站上的服务均为第三方提供,与网商动力无关。请用户注意甄别服务质量,避免上当受骗。