AMZ123跨境卖家导航
拖动LOGO到书签栏,立即收藏AMZ123
首页跨境头条文章详情

【Python爬虫】: Selenium自动化进阶,它能做的不仅仅是爬虫

任佳伟
任佳伟
21691
2018-12-26 19:05
2018-12-26 19:05
21691

哈喽,之前为大家介绍了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)的大部分功能以及破解亚马逊验证码的实现,有兴趣的读者朋友可以深入研究,将它利用到实际工作中。



以上就是本期的爬虫文章,谢谢阅读。


免责声明
本文链接:
本文经作者许可发布在AMZ123跨境头条,如有疑问,请联系客服。
最新热门报告作者标签
SHEIN发布全球循环报告,7 成用户注重性价比
AMZ123获悉,近日,SHEIN 发布2025 年全球循环性报告,调研覆盖21 个国家、约1.5万名用户,系统分析用户购买决策、穿着习惯、衣物处置与循环参与行为,为服装电商的可持续运营、循环服务设计与消费引导提供数据支撑。核心发现如下:一、影响用户购买决策的因素(一)核心决策因素1、性价比是第一决策前提价格是全球用户最统一、最优先的考量项。71.6% 的用户总是将最优价格作为首要考虑,19.2%经常考虑,合计占比高达 90.8%。在 21 个调研市场中,18 个市场将价格列为第一考量,且这些市场中超过 85% 的用户高度关注价格;其中南非、韩国用户价格敏感度最高,近 95% 总是 / 经常关注价格。
26年美国美妆消费者趋势:关税、AI、社媒影响购物决策
AMZ123获悉,随着新技术与平台不断涌现,不同世代美妆消费者的购物行为愈发复杂,不同产品类别对购买决策的影响也存在显著差异。同时,美国近年的关税政策与持续通胀也对市场格局造成影响,使品牌方面临竞争激烈且充满不确定性的环境。因此,Tinuiti发布了《2026年美妆营销研究报告》,从通胀影响到社交媒体趋势全面分析了消费者行为,以更好理解当前美国市场的美妆消费状况。一、市场现状1. 消费者对价格变化的反应数据显示,2025年美国美妆及个护电商市场规模已达到约610亿美元,电商渠道已占据接近一半的市场份额。随着技术进步和平台多样化,美容消费者的购物路径日益复杂。
25年日本家居电商市场达2.56万亿日元,平均单价提升
AMZ123获悉,近日,根据日本经济产业省发布的“2022-2025年电商市场调查”,2025年日本家居电商市场持续扩张,尽管新建住宅数量下降,消费者对线上购物的需求和高价值产品的偏好推动了市场增长。数据显示,近三年来,日本生活杂货、家具、家居类B2C电商市场规模和渗透率均呈稳步上升趋势,从2022年的2.35万亿日元(29.59%),增长至2025年的2.56万亿日元(32.58%%),同比增长3.62%。在商品行业中排名第三,仅次于“图书、视频及音乐软件”(56.45%)和“家用电器、音视频设备、电脑及周边设备等”(43.03%)。
25年全球美妆市场增长10%,AI与社交电商推动增长
AMZ123获悉,近日,根据尼尔森IQ(NielsenIQ)发布的《2026美妆市场报告》,2025年全球美妆市场同比增长10%,其中电商渠道的增速是线下实体店的六倍。对于品牌来说,加快数字化布局已成为赢得美妆市场的关键。从区域表现来看,北美市场增长10%,西欧增长4%,东欧增长8%,拉丁美洲增长14%,非洲和中东增长16%,亚太地区增长14%。这一趋势表明,无论市场成熟度如何,数字化渠道对全球美妆增长的推动作用普遍存在。AI驱动的产品推荐、社交电商以及直播购物正在改变消费者发现和购买产品的路径。超过50%的消费者正在使用AI购物工具,其中49%已经通过生成式AI获得美妆推荐,53%的消费者通过社交平台完成购买。
国产奶瓶刷打入美国母婴圈,在TikTok卖了200多万
给宝宝洗杯子,大概是所有父母最熟悉也最无奈的日常。不同于成人所用的敞口杯,婴幼儿专用杯包含防呛阀门、吸嘴等特殊饮水结构,复杂配件造就的诸多清洁死角,“滋生”的不光有缝隙处的霉菌刺客,更有为人父母对于“哪儿哪儿不干净”的卫生焦虑。近期在TikTok美区,一款能深入各个死角、分区清洁的杯刷工具正是为“绞杀”这番情绪而来,凭借5合1的全能型卖点迅速突围,成为母婴类目的一匹销量黑马。01母婴类目下的“死角克星”数据显示,在TikTok美区母婴用品类目,一款主打5合1的清洁杯刷以2445件的周销量,登上了大类销量榜第2的位置。虽然乍一看这款刷子与常规款无异,但在洗杯子这件事上,它的专业程度却毋庸置疑。
美国Q4电商销售额达3652亿美元,渗透率创新高
AMZ123获悉,近日,根据Digital Commerce 360对美国商务部数据的分析,2025年第四季度,美国电商销售额首次在单个季度突破3500亿美元大关,达到约3650亿美元,比历史数据高出约150亿美元。数据显示,2025年第四季度美国总零售额为1.461万亿美元,同比增长3.6%。其中,线下零售销售增长3%。分析显示,电商在美国零售市场的渗透率创历史新高,占美国总零售总额的25%。若将餐饮服务等零售销售也计入,美国电商占总零售额的比例为16.6%,未经调整的数据显示占比为18.3%。这是自美国商务部 1999年开始追踪在线销售以来,单季度电商渗透率最高的一次。
意大利对Revolut处以1150万欧元罚款
Fin123获悉,近日,意大利反垄断机构对 Revolut 处以 1150 万欧元的罚款。意大利竞争管理局(AGCM)指出,Revolut向客户散布了关于其投资产品的错误信息,同时未能清晰、完整地披露免佣金投资背后的隐性成本与交易限制。此外,意大利方面指出,Revolut在处理用户银行账户时,采用了激进且不透明的操作手法,包括就账户暂停、限制及冻结等事项提供不完整或误导性信息。此次罚款共涉及三项具体处罚:第一,Revolut Securities Europe UAB 与 Revolut Group Holdings Ltd 因投资服务信息披露不足,被罚500万欧元。
年销售额6.7亿美元!25年TikTok Shop美国站美妆标签Top10
AMZ123获悉,近日,根据Charm.io统计,TikTok Shop美国站上10个美妆类标签在过去12个月内创造了超过6.7亿美元的销售额,这些标签不仅描述产品,更直接激发购买行为。2025年超过7000万件美妆产品通过TikTok Shop售出。在TikTok Shop上,标签成为推动消费的基础形式。例如,#skincare护肤标签一年销售额约1.419亿美元,Dr. Melaxin Peel Shot Glow Rice安瓶套装因配方中的水稻提取物与AHA、BHA化学成分,能清理黑头、净化毛孔并防止痘痘,成为#skincare的代表产品。
亚马逊再调FBA费用,4月17日起生效!
中东战火延宕至今,仍未有“熄火”之意。当地时间4月2日,特朗普在最新表态中发出警告,称美国将在未来两到三周内对伊朗进行猛烈打击,国际油价应声飙涨。截至当天收盘,5月交货的美国WTI原油价格收于每桶111.54美元,上涨11.41%;6月交货的国际基准布伦特原油价格则收于每桶109.03美元,涨幅高达7.78%。在此背景下,一系列“涨价通知”如同多米诺骨牌,正逐级传导至跨境卖家们的利润表上。全链路合规难题现场答疑,4.17 深圳 | 深圳商务局&行业专家坐镇,落地实操一站获取!点击报名AMZ123了解到,当地时间4月2日,亚马逊美国站发布了一则加征物流相关附加费的通知。
高评分+高销量,10款亚马逊厨房小家电热销产品一览
AMZ123获悉,近日,亚马逊各类产品搜索量增长显著,以下10款产品在亚马逊上销量表现突出,深受消费者欢迎。1. 电热水壶预计销售额:62万美元/月销量:24,200+星级评分:4.5好评数量:47,056+图源:亚马逊产品介绍:这款电热水壶内部无塑料,提升饮用安全性与口感纯净度。产品加热效率较高,可在3分钟内快速烧开一杯水,同时配备自动断电、加热指示灯、防干烧保护功能,保障使用安全。整体外观采用简约设计,宽口壶身与双角度开盖设计便于清洁与加水,精准壶嘴与防烫手柄提升倒水稳定性。
伊朗称袭击甲骨文迪拜数据中心,迪拜辟谣
AMZ123获悉,近日,Islamic Revolutionary Guard Corps(伊朗伊斯兰革命卫队)通过伊朗官方媒体声称,其海军司令部已对位于阿联酋迪拜的一处Oracle(甲骨文公司)数据中心发动打击,但这一说法随后被迪拜方面否认。Dubai Government Media Office(迪拜政府媒体办公室)在声明中表示,有关袭击的消息“系捏造和不真实”,并呼吁公众以官方渠道发布的信息为准。根据伊朗媒体报道,此次所谓打击行动被描述为针对美国科技企业在中东设施的行动之一。此前,伊朗革命卫队已公开威胁,将对包括甲骨文在内的18家美国科技和金融公司在中东地区的设施实施打击。
26年美国美妆消费者趋势:关税、AI、社媒影响购物决策
AMZ123获悉,随着新技术与平台不断涌现,不同世代美妆消费者的购物行为愈发复杂,不同产品类别对购买决策的影响也存在显著差异。同时,美国近年的关税政策与持续通胀也对市场格局造成影响,使品牌方面临竞争激烈且充满不确定性的环境。因此,Tinuiti发布了《2026年美妆营销研究报告》,从通胀影响到社交媒体趋势全面分析了消费者行为,以更好理解当前美国市场的美妆消费状况。一、市场现状1. 消费者对价格变化的反应数据显示,2025年美国美妆及个护电商市场规模已达到约610亿美元,电商渠道已占据接近一半的市场份额。随着技术进步和平台多样化,美容消费者的购物路径日益复杂。
因地缘政治动荡!近九成电商公司计划三年内换产地
AMZ123获悉,近日,据外媒报道,因地缘政治持续动荡,全球供应链频繁受扰,电商行业正加速重新思考生产布局。Fidelity Fulfilment最新发布的一项研究显示,87%的电商企业计划在未来三年内更换主要生产地点。这项调查由Opinion Matters机构执行,共访问了英国、欧洲及美国的1500家电商企业。研究指出,电商公司已不再满足于短期的应急措施,而是进入了一个更系统的供应链重构阶段。韧性与灵活性成为长期战略的核心,企业试图从根本上降低对单一产地的依赖。这种思路同样体现在物流配送环节。约86%的受访企业表示,未来三年内将增设更多物流配送中心。业内分析指出,这意味着物流网络正从集中走向分散。
25年全球美妆市场增长10%,AI与社交电商推动增长
AMZ123获悉,近日,根据尼尔森IQ(NielsenIQ)发布的《2026美妆市场报告》,2025年全球美妆市场同比增长10%,其中电商渠道的增速是线下实体店的六倍。对于品牌来说,加快数字化布局已成为赢得美妆市场的关键。从区域表现来看,北美市场增长10%,西欧增长4%,东欧增长8%,拉丁美洲增长14%,非洲和中东增长16%,亚太地区增长14%。这一趋势表明,无论市场成熟度如何,数字化渠道对全球美妆增长的推动作用普遍存在。AI驱动的产品推荐、社交电商以及直播购物正在改变消费者发现和购买产品的路径。超过50%的消费者正在使用AI购物工具,其中49%已经通过生成式AI获得美妆推荐,53%的消费者通过社交平台完成购买。
意大利对Revolut处以1150万欧元罚款
Fin123获悉,近日,意大利反垄断机构对 Revolut 处以 1150 万欧元的罚款。意大利竞争管理局(AGCM)指出,Revolut向客户散布了关于其投资产品的错误信息,同时未能清晰、完整地披露免佣金投资背后的隐性成本与交易限制。此外,意大利方面指出,Revolut在处理用户银行账户时,采用了激进且不透明的操作手法,包括就账户暂停、限制及冻结等事项提供不完整或误导性信息。此次罚款共涉及三项具体处罚:第一,Revolut Securities Europe UAB 与 Revolut Group Holdings Ltd 因投资服务信息披露不足,被罚500万欧元。
年销售额6.7亿美元!25年TikTok Shop美国站美妆标签Top10
AMZ123获悉,近日,根据Charm.io统计,TikTok Shop美国站上10个美妆类标签在过去12个月内创造了超过6.7亿美元的销售额,这些标签不仅描述产品,更直接激发购买行为。2025年超过7000万件美妆产品通过TikTok Shop售出。在TikTok Shop上,标签成为推动消费的基础形式。例如,#skincare护肤标签一年销售额约1.419亿美元,Dr. Melaxin Peel Shot Glow Rice安瓶套装因配方中的水稻提取物与AHA、BHA化学成分,能清理黑头、净化毛孔并防止痘痘,成为#skincare的代表产品。
《TikTok Shop突破末次触达归因(LTA)ROAS分析报告》PDF下载
在数字化浪潮中,广告主正面临有效衡量广告支出回报率(ROAS)的挑战。传统未次触达归因(LTA)模型因数据收集难度和归因偏差问题已难以满足广告主的需求,因此,探索新的方法来解决这些问题显得尤为重要。
《未来电商报告:品牌独立站五步升级锁定未来确定性增长》PDF下载
调研显示,出海商家针对家居、时尚及消费电子等品类布局比例均超过30%。独立站凭借其高度品牌化、个性化、场景化及功能性等优势,精准契合上述品类对品牌调性、场景交互及沉浸式体验的核心诉求,正成为商家黑五大促期提升销量、构建品牌竞争壁垒的关键载体。
《TikTok Shop达人真实种草力报告》PDF下载
达人正在将文化内容、社群互动与商业转化深度融合,形成一个高度协同的内容商业生态,其价值早已不再局限于内容带来的直接收入。从更广义的商业视角来看,达人价值的核心在于真实影响力-即其内容对商品与服务产生影响并促成转化所形成的整体商业价值,这一能力正构成达人在内容电商体系中的带货价值基础。
《2026年第2季度儿童时尚品类报告》PDF下载
儿童时尚品类概览 主题选品合辑 巴西站点上新 泰国站点上新 菲律宾站点上新 越南站点上新
《TikTok Shop 2025年度报告》PDF下载
2025年,TikTok Shop进一步加快扩张步伐,在巩固欧美成熟市场的同时,积极开拓新兴市场,先后上线德国、意大利、法国、日本等站点。此举不仅为平台带来新增量,也体现出其多元化市场战略的初步成效,以分散地缘政治风险。
《Shopee2025印尼站点X 汽车摩托品类专题》PDF下载
印尼当地汽车保有量并不高,每一千人的机动车保有量仅96人,未来可提升的空间仍大。空间参照系可以看泰国和马来,2024年泰国汽车保有量为322辆/千人,马来西亚为531辆/千人。
《2026年Shopee运动户外类目自行车爆品分享》PDF下载
巴西骑行爱好群体广泛,但平台上热销品呈现出的国际大牌极少,推测可能原因是国际品牌可能主要通过线下经销或自行渠道销售,未深度参与Shopee等本土电商。因此巴西用户在平台上几乎接触不到这些高端品牌产品。平台上巴西用户更倾向购买本土品牌的自行车,可能出于价格实惠和售后便利考虑。
《2025年TikTok生态发展白皮书》PDF下载
2025年,全球内容电商迈入深度跃迁的新周期。TikTokShop正以前所未有的速度拓展市场版图,完成从高速增长向高质量增长的跃迁。在这一进程中,生态结构重构、参与者多元化、全球政策协同等因素叠加,构成内容电商演进的核心变量。
跨境学院
跨境电商大小事,尽在跨境学院。
亿邦动力网
消除一切电商知识鸿沟,每日发布独家重磅新闻。
亚马逊资讯
AMZ123旗下亚马逊资讯发布平台,专注亚马逊全球热点事件,为广大卖家提供亚马逊最新动态、最热新闻。
跨境电商赢商荟
跨境电商行业唯一一家一年365天不断更的媒体!
亚马逊公告
AMZ123旗下亚马逊公告发布平台,实时更新亚马逊最新公告,致力打造最及时和有态度的亚马逊公告栏目!
侃侃跨境那些事儿
不侃废话,挣钱要紧!
AMZ123跨境电商
专注跨境行业热点事件报道,每日坚持推送原创深度热文
亚马逊全球开店
亚马逊全球开店官方公众号,致力于为中国跨境卖家提供最新,最全亚马逊全球开店资讯,运营干货分享及开店支持。
首页
跨境头条
文章详情
【Python爬虫】: Selenium自动化进阶,它能做的不仅仅是爬虫
任佳伟
2018-12-26 19:05
21692

哈喽,之前为大家介绍了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)的大部分功能以及破解亚马逊验证码的实现,有兴趣的读者朋友可以深入研究,将它利用到实际工作中。



以上就是本期的爬虫文章,谢谢阅读。


咨询
官方微信群
官方客服

扫码添加,立即咨询

加群
官方微信群
官方微信群

扫码添加,拉你进群

更多
订阅号服务号跨境资讯
二维码

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

二维码

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

二维码

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

回顶部