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

亚马逊运营必备爬虫知识:使用「Selenium」+「Chromedriver」爬僵尸链接

40202
2018-12-10 19:34
2018-12-10 19:34
40202


      往期有读者朋友提问能否爬「僵尸链接」,肯定是可以的。只有你看不到,没有爬虫爬不了的。


使用本文今天将讲到的「Selenium」+「Chromedriver」就可以轻松完成。本文还是会从环境搭建、查找僵尸链接原理到代码编写一步步来实现这个需求。


Selenium原本是一套完整的web应用程序测试系统,现也用作爬虫。用户可以使用它驱动浏览器,使浏览器按照已编写完成的代码完成相应动作。


Selenium支持驱动Chrome、Firefox、IE等一系列浏览器,在这里我还是选用大家熟悉的Chrome浏览器。



环境搭建步骤:



一、安装Selenium


在上一期已搭建Python环境的前提下打开CMD窗口,输入: pip install selenium」会自动安装selenium,如无报错,且提示安装成功,则成功安装selenium


可以通过以下方式验证是否安装成功并且能正常使用:

CMD窗口中输入python,再输入from selenium import webdriver,敲击回车。如果没有报错,则selenium成功安装且能正常使用。



二、下载Chromedriver


首先从https://www.google.cn/chrome/下载最新版Chrome浏览器,再从http://chromedriver.storage.googleapis.com/index.htm 下载最新版的Chromedriver。


若你已经安装了Chrome浏览器,可根据已安装的Chrome浏览器版本下载对应的Chromedriver版本。附Chrome与Chromedriver的对应关系表:

Chrome浏览器和Chromedriver都下载完成后,将Chrome浏览器安装好,将Chromedriver解压放在自己喜欢的地方待用。



查找原理:


在搜索引擎中使用「site」关键字,可以把搜索范围限定在特定站点中,如site:某某.com。“site:”后面跟的站点域名,不要带“http://”;site:后面带不带www结果可能是不一样的,因为有些域名还包括二级域名,如:site:www.某某.com和site:某某.com,搜索结果就不一样;另外,site:和站点名之间,不要带空格。


我们可以用「site:amazon.com」,只查找在亚马逊网站内的信息。

而一个僵尸链接必有下图特征:


那我们需要构建一个完整的搜索关键字使用Google就可以帮我们找出亚马逊中的僵尸链接。如我需要找「Nike」的僵尸链接,则使用「site:amazon.com Nike Currently unavailable.」使用Google搜索即可。


但其中某些搜索结果,并不是我们想要的僵尸链接。这就需要我们的爬虫去遍历每个搜索结果,并返回正确的僵尸链接。



代码编写:


打开Pycharm,新建项目:

从selenium导入webdriver:

from selenium import webdriver


准备好搜索链接:

url = 'https://www.google.com/search?q=site%EF%BC%9Aamazon.com+Nike+Currently+unavailable.'


        

driver = webdriver.Chrome('C:Program Files (x86)GoogleChromeApplicationchromedriver.exe')
# 在webdriver.Chrome(中填入之前下载好的Chromedrive的路径)
driver.get(url)


        


将自动打开Chrome浏览器并访问:https://www.google.com/search?q=site%EF%BC%9Aamazon.com+Nike+Currently+unavailable.


若浏览器出现「Chrome 正受到自动测试软件的控制。」则表示我们已成功使用selenium驱动Chrome并按照预设访问了Google。


分析Google搜索结果页面,在搜索结果页面按F12。通过分析网页源码,可以看出每个搜索结果都包含在一个class为rc的<div>标签内:


我们可以使用「XPath」来查看是否通过查找所有的class为rc的<div>标签即可找到所有搜索结果。首先下载Chrome插件「XPath Helper」:


在搜索结果页面打开「XPath Helper」,输入「//div[@class='rc']」,显示「RESULTS (20)」及表示有20个class为rc的<div>标签,这与页面中的20个搜索结果相符,这表示可以使用该XPath找出页面中共有多少个搜索结果。



再按照下图分别点击1、2定位某条搜索结果的标题:


在第三步上点击鼠标右键→「Copy」→「Copy XPath」


这里要科普一下,「XPath」是XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。使用XPath我们可以准确定位页面中某个元素的位置。


多拷贝几个搜索结果的XPath,可以找出其中的规律:

可见只需将XPath略微修改即可准确定位每个搜索结果的标题,那我们就可以继续敲代码了。


首先查找所有的class为rc的<div>标签,并计算其长度。

all_rc = driver.find_elements_by_xpath("//div[@class='rc']") # 查找所有的class为rc的<div>标签
len_all_rc =
len(all_rc) # len()可计算其长度



根据所有的class为rc的<div>标签的长度,生成新的XPath并定位、点击,即跳转至亚马逊商品页面。

# for X in range () 是前开后闭,所以需要len_all_rc + 1 才能循环len_all_rc次。
for i in range(1, len_all_rc + 1):
    # 拼接新的XPath
xpath = "//*[@id='rso']/div/div/div["+str(i)+"]/div/div/h3/a"
# 根据XPath定位搜索结果的标题,并点击
   
driver.find_element_by_xpath(xpath).click()


                   

返回亚马逊商品页面源码。

pageSource = driver.page_source



如果“Currently unavailable.”在页面源码中,即可确定是为僵尸链接。则在控制台打印该商品链接。

if 'Currently unavailable.' in pageSource:
   
print(driver.current_url)


                  

完成一次循环后,需要退回到Google搜索界面,下次一循环才能正确进行。

driver.back()



完成一页搜索结果筛选后,需要点击搜索结果页面的下一页继续筛选,直到无新的搜索结果为止。

# 定位下一页的按钮
next_button = driver.find_element_by_xpath('//*[@id="pnnext"]/span[2]')
# 如果下一页按钮存在
if next_button:
     # 这定位下一页按钮并点击
    driver.find_element_by_xpath(
'//*[@id="pnnext"]/span[2]').click()
# 否则退出循环、结束程序。
else:
   
break




以上便是使用「Selenium」+「Chromedriver」从环境搭建、查找链接原理到代码编写来实现爬取僵尸链接的全部过程。其完整代码为:

from selenium import webdriver

url =
'https://www.google.com/search?q=site%EF%BC%9Aamazon.com+Nike+Currently+unavailable.'
driver = webdriver.Chrome('C:Program Files (x86)GoogleChromeApplicationchromedriver.exe')
driver.maximize_window()
driver.get(url)
while True:
    all_rc = driver.find_elements_by_xpath(
"//div[@class='rc']")
    len_all_rc =
len(all_rc)
   
for i in range(1, len_all_rc + 1):
        xpath =
"//*[@id='rso']/div/div/div["+str(i)+"]/div/div/h3/a"
       
driver.find_element_by_xpath(xpath).click()
        pageSource = driver.page_source
       
if 'Currently unavailable.' in pageSource:
           
print(driver.current_url)
        driver.back()
    next_button = driver.find_element_by_xpath(
'//*[@id="pnnext"]/span[2]')
   
if next_button:
        driver.find_element_by_xpath(
'//*[@id="pnnext"]/span[2]').click()
   
else:
       
break



我的这篇文章只是简单的介绍了selenium + webdriver的使用,当然你也可以结合「Requests」+「bs4」爬取每个僵尸链接对应商品的Asin、标题、品牌、star、review等,并保存到文件中方便筛选你中意的僵尸。


 如图:


End


【物流福利】



不过瘾?重磅加推亚马逊全球开店峰会整点惊喜!

一周爆闻 | 正式征收20%广告增值税;Review政策更新;

你有一份撩人的A2Z申诉技巧未领取!

旺季期间,你应该算清楚亚马逊运营中的每笔帐!




免责声明
本文链接:
本文经作者许可发布在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 深圳 | 深圳商务局&amp;行业专家坐镇,落地实操一站获取!点击报名AMZ123了解到,当地时间4月2日,亚马逊美国站发布了一则加征物流相关附加费的通知。
高评分+高销量,10款亚马逊厨房小家电热销产品一览
AMZ123获悉,近日,亚马逊各类产品搜索量增长显著,以下10款产品在亚马逊上销量表现突出,深受消费者欢迎。1. 电热水壶预计销售额:62万美元/月销量:24,200+星级评分:4.5好评数量:47,056+图源:亚马逊产品介绍:这款电热水壶内部无塑料,提升饮用安全性与口感纯净度。产品加热效率较高,可在3分钟内快速烧开一杯水,同时配备自动断电、加热指示灯、防干烧保护功能,保障使用安全。整体外观采用简约设计,宽口壶身与双角度开盖设计便于清洁与加水,精准壶嘴与防烫手柄提升倒水稳定性。
因产品数据质量不佳,印度电商每年损失五百亿卢比
AMZ123获悉,近日,据外媒报道,印度电商与快消行业正因产品数据质量不佳而蒙受巨额损失。据GS1印度公司的最新研究,不一致、不完整或不准确的产品信息每年导致约500亿卢比的资金流失。其中,约200亿卢比表现为毛利率下降,原因包括转化率降低、商品上架受限以及销售速度放缓;另有190亿卢比直接用于退货相关成本,涵盖逆向物流、处理与加工等环节。尤其在时尚服装领域,退货问题更为突出。因尺码不合、款式偏好或实物与描述不符,顾客主动退货率通常占总订单的20%至25%。Unicommerce指出,逆向物流会使订单价值额外增加5%至7%,而这还不含原始运费。放眼全球,时尚与鞋类退货率甚至可达30%至40%。
Stripe与Meta合作,FB广告可完成一键结账
Fin123获悉,近日,Stripe宣布,为Facebook广告商推出全新结账体验,使消费者无需离开应用即可完成购买。通过这项功能,使用Stripe的卖家可以将Facebook广告与支付系统直接连接,买家点击广告中的“立即购买”按钮后,可使用Meta钱包中保存的支付凭证完成一键结账。该流程基于《智能体商务协议》,未来将扩展到包括Instagram广告在内的更多Meta平台。卖家可在Stripe管理平台中通过开关选择启用此功能,并关联其Meta广告账户。启用后,购买过程将完全嵌入广告体验,消除了用户在传统跳转浏览器或应用完成交易时的中断,从而提升购买转化率。
存火灾风险!美国CPSC紧急召回八款插头延长线
AMZ123获悉,近日,美国消费者产品安全委员会(CPSC)发布紧急召回警告,要求消费者立即停止使用“插头延长线”,并已与沃尔玛、eBay和AliExpress等电商平台达成协议,下架相关危险商品。CPSC指出,这类延长线两端均为公头插头,插入电源后裸露插脚可能带电,存在严重触电和火灾风险,因此在任何情况下都不应使用。为防止危险商品继续流入市场,CPSC已推动相关电商平台删除商品链接,同时平台方面承诺将主动识别并下架类似产品。根据CPSC的公告,多家来自中国的卖家和企业涉及销售该类产品,但大多数未回应CPSC关于召回或产品信息的要求。
26年美国美妆消费者趋势:关税、AI、社媒影响购物决策
AMZ123获悉,随着新技术与平台不断涌现,不同世代美妆消费者的购物行为愈发复杂,不同产品类别对购买决策的影响也存在显著差异。同时,美国近年的关税政策与持续通胀也对市场格局造成影响,使品牌方面临竞争激烈且充满不确定性的环境。因此,Tinuiti发布了《2026年美妆营销研究报告》,从通胀影响到社交媒体趋势全面分析了消费者行为,以更好理解当前美国市场的美妆消费状况。一、市场现状1. 消费者对价格变化的反应数据显示,2025年美国美妆及个护电商市场规模已达到约610亿美元,电商渠道已占据接近一半的市场份额。随着技术进步和平台多样化,美容消费者的购物路径日益复杂。
824个品牌中招?疑WOOT封号名单曝光
AMZ123在此前文章中提到,自3月初起,业内陆续有卖家反映收到亚马逊扫号邮件,而这轮扫号的矛头,大多都指向“WOOT刷单”。随后,卖家圈接连传出小号被封、主账号受牵连、资金被冻结等消息。到了4月,这场风波仍未平息,反而有越查越深的迹象。风声渐紧之下,卖家圈最关心的话题也随之变了——这次到底扫到了谁?就在这样的追问声中,AMZ123了解到,一份疑似与此次WOOT封号潮相关的品牌名单,近日开始在卖家圈流传。从目前流出的截图来看,这份名单共列出824个品牌,PUKAOCK、KUKALY、ITSNGBY、TAOOLP、MYTHSIGHT、HOOROLA、DR.FRESH、CYBERBLAZE等多个品牌名均在其中。
伊朗称袭击甲骨文迪拜数据中心,迪拜辟谣
AMZ123获悉,近日,Islamic Revolutionary Guard Corps(伊朗伊斯兰革命卫队)通过伊朗官方媒体声称,其海军司令部已对位于阿联酋迪拜的一处Oracle(甲骨文公司)数据中心发动打击,但这一说法随后被迪拜方面否认。Dubai Government Media Office(迪拜政府媒体办公室)在声明中表示,有关袭击的消息“系捏造和不真实”,并呼吁公众以官方渠道发布的信息为准。根据伊朗媒体报道,此次所谓打击行动被描述为针对美国科技企业在中东设施的行动之一。此前,伊朗革命卫队已公开威胁,将对包括甲骨文在内的18家美国科技和金融公司在中东地区的设施实施打击。
《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旗下欧洲跨境电商新闻栏目,专注欧洲跨境电商热点资讯,为广大卖家提供欧洲跨境电商最新动态、最热新闻。
跨境平台资讯
AMZ123旗下跨境电商平台新闻栏目,专注全球跨境电商平台热点事件,为广大卖家提供跨境电商平台最新动态、最热新闻。
AMZ123选品观察员
选品推荐及选品技巧分享。
亚马逊资讯
AMZ123旗下亚马逊资讯发布平台,专注亚马逊全球热点事件,为广大卖家提供亚马逊最新动态、最热新闻。
跨境电商赢商荟
跨境电商行业唯一一家一年365天不断更的媒体!
亚马逊全球开店
亚马逊全球开店官方公众号,致力于为中国跨境卖家提供最新,最全亚马逊全球开店资讯,运营干货分享及开店支持。
跨境电商干货集结
跨境电商干货集结,是结合亚马逊跨境电商卖家交流群内大家在交流过程中最常遇到的问题,进行收集整理,汇总解答,将会持续更新大家当前最常遇见的问题。欢迎大家加入跨境电商干货集结卖家交流群一起探讨。
北美电商资讯
AMZ123旗下北美跨境电商新闻栏目,专注北美跨境电商热点资讯,为广大卖家提供北美跨境电商最新动态、最热新闻。
首页
跨境头条
文章详情
亚马逊运营必备爬虫知识:使用「Selenium」+「Chromedriver」爬僵尸链接
黑五电商
2018-12-10 19:34
40202


      往期有读者朋友提问能否爬「僵尸链接」,肯定是可以的。只有你看不到,没有爬虫爬不了的。


使用本文今天将讲到的「Selenium」+「Chromedriver」就可以轻松完成。本文还是会从环境搭建、查找僵尸链接原理到代码编写一步步来实现这个需求。


Selenium原本是一套完整的web应用程序测试系统,现也用作爬虫。用户可以使用它驱动浏览器,使浏览器按照已编写完成的代码完成相应动作。


Selenium支持驱动Chrome、Firefox、IE等一系列浏览器,在这里我还是选用大家熟悉的Chrome浏览器。



环境搭建步骤:



一、安装Selenium


在上一期已搭建Python环境的前提下打开CMD窗口,输入: pip install selenium」会自动安装selenium,如无报错,且提示安装成功,则成功安装selenium


可以通过以下方式验证是否安装成功并且能正常使用:

CMD窗口中输入python,再输入from selenium import webdriver,敲击回车。如果没有报错,则selenium成功安装且能正常使用。



二、下载Chromedriver


首先从https://www.google.cn/chrome/下载最新版Chrome浏览器,再从http://chromedriver.storage.googleapis.com/index.htm 下载最新版的Chromedriver。


若你已经安装了Chrome浏览器,可根据已安装的Chrome浏览器版本下载对应的Chromedriver版本。附Chrome与Chromedriver的对应关系表:

Chrome浏览器和Chromedriver都下载完成后,将Chrome浏览器安装好,将Chromedriver解压放在自己喜欢的地方待用。



查找原理:


在搜索引擎中使用「site」关键字,可以把搜索范围限定在特定站点中,如site:某某.com。“site:”后面跟的站点域名,不要带“http://”;site:后面带不带www结果可能是不一样的,因为有些域名还包括二级域名,如:site:www.某某.com和site:某某.com,搜索结果就不一样;另外,site:和站点名之间,不要带空格。


我们可以用「site:amazon.com」,只查找在亚马逊网站内的信息。

而一个僵尸链接必有下图特征:


那我们需要构建一个完整的搜索关键字使用Google就可以帮我们找出亚马逊中的僵尸链接。如我需要找「Nike」的僵尸链接,则使用「site:amazon.com Nike Currently unavailable.」使用Google搜索即可。


但其中某些搜索结果,并不是我们想要的僵尸链接。这就需要我们的爬虫去遍历每个搜索结果,并返回正确的僵尸链接。



代码编写:


打开Pycharm,新建项目:

从selenium导入webdriver:

from selenium import webdriver


准备好搜索链接:

url = 'https://www.google.com/search?q=site%EF%BC%9Aamazon.com+Nike+Currently+unavailable.'


        

driver = webdriver.Chrome('C:Program Files (x86)GoogleChromeApplicationchromedriver.exe')
# 在webdriver.Chrome(中填入之前下载好的Chromedrive的路径)
driver.get(url)


        


将自动打开Chrome浏览器并访问:https://www.google.com/search?q=site%EF%BC%9Aamazon.com+Nike+Currently+unavailable.


若浏览器出现「Chrome 正受到自动测试软件的控制。」则表示我们已成功使用selenium驱动Chrome并按照预设访问了Google。


分析Google搜索结果页面,在搜索结果页面按F12。通过分析网页源码,可以看出每个搜索结果都包含在一个class为rc的<div>标签内:


我们可以使用「XPath」来查看是否通过查找所有的class为rc的<div>标签即可找到所有搜索结果。首先下载Chrome插件「XPath Helper」:


在搜索结果页面打开「XPath Helper」,输入「//div[@class='rc']」,显示「RESULTS (20)」及表示有20个class为rc的<div>标签,这与页面中的20个搜索结果相符,这表示可以使用该XPath找出页面中共有多少个搜索结果。



再按照下图分别点击1、2定位某条搜索结果的标题:


在第三步上点击鼠标右键→「Copy」→「Copy XPath」


这里要科普一下,「XPath」是XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。使用XPath我们可以准确定位页面中某个元素的位置。


多拷贝几个搜索结果的XPath,可以找出其中的规律:

可见只需将XPath略微修改即可准确定位每个搜索结果的标题,那我们就可以继续敲代码了。


首先查找所有的class为rc的<div>标签,并计算其长度。

all_rc = driver.find_elements_by_xpath("//div[@class='rc']") # 查找所有的class为rc的<div>标签
len_all_rc =
len(all_rc) # len()可计算其长度



根据所有的class为rc的<div>标签的长度,生成新的XPath并定位、点击,即跳转至亚马逊商品页面。

# for X in range () 是前开后闭,所以需要len_all_rc + 1 才能循环len_all_rc次。
for i in range(1, len_all_rc + 1):
    # 拼接新的XPath
xpath = "//*[@id='rso']/div/div/div["+str(i)+"]/div/div/h3/a"
# 根据XPath定位搜索结果的标题,并点击
   
driver.find_element_by_xpath(xpath).click()


                   

返回亚马逊商品页面源码。

pageSource = driver.page_source



如果“Currently unavailable.”在页面源码中,即可确定是为僵尸链接。则在控制台打印该商品链接。

if 'Currently unavailable.' in pageSource:
   
print(driver.current_url)


                  

完成一次循环后,需要退回到Google搜索界面,下次一循环才能正确进行。

driver.back()



完成一页搜索结果筛选后,需要点击搜索结果页面的下一页继续筛选,直到无新的搜索结果为止。

# 定位下一页的按钮
next_button = driver.find_element_by_xpath('//*[@id="pnnext"]/span[2]')
# 如果下一页按钮存在
if next_button:
     # 这定位下一页按钮并点击
    driver.find_element_by_xpath(
'//*[@id="pnnext"]/span[2]').click()
# 否则退出循环、结束程序。
else:
   
break




以上便是使用「Selenium」+「Chromedriver」从环境搭建、查找链接原理到代码编写来实现爬取僵尸链接的全部过程。其完整代码为:

from selenium import webdriver

url =
'https://www.google.com/search?q=site%EF%BC%9Aamazon.com+Nike+Currently+unavailable.'
driver = webdriver.Chrome('C:Program Files (x86)GoogleChromeApplicationchromedriver.exe')
driver.maximize_window()
driver.get(url)
while True:
    all_rc = driver.find_elements_by_xpath(
"//div[@class='rc']")
    len_all_rc =
len(all_rc)
   
for i in range(1, len_all_rc + 1):
        xpath =
"//*[@id='rso']/div/div/div["+str(i)+"]/div/div/h3/a"
       
driver.find_element_by_xpath(xpath).click()
        pageSource = driver.page_source
       
if 'Currently unavailable.' in pageSource:
           
print(driver.current_url)
        driver.back()
    next_button = driver.find_element_by_xpath(
'//*[@id="pnnext"]/span[2]')
   
if next_button:
        driver.find_element_by_xpath(
'//*[@id="pnnext"]/span[2]').click()
   
else:
       
break



我的这篇文章只是简单的介绍了selenium + webdriver的使用,当然你也可以结合「Requests」+「bs4」爬取每个僵尸链接对应商品的Asin、标题、品牌、star、review等,并保存到文件中方便筛选你中意的僵尸。


 如图:


End


【物流福利】



不过瘾?重磅加推亚马逊全球开店峰会整点惊喜!

一周爆闻 | 正式征收20%广告增值税;Review政策更新;

你有一份撩人的A2Z申诉技巧未领取!

旺季期间,你应该算清楚亚马逊运营中的每笔帐!




1
咨询
官方微信群
官方客服

扫码添加,立即咨询

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

扫码添加,拉你进群

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

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

二维码

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

二维码

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

回顶部