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

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

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

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

中国卖家新增2站点,新站点知识要点往这儿看

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


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


使用本文今天将讲到的「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申诉技巧未领取!

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




二维码
我们建了一个亚马逊卖家交流群,里面不乏很多大卖家。
现在扫码回复“ 加群 ”,拉你进群。
目前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 声明:网站上的服务均为第三方提供,与网商动力无关。请用户注意甄别服务质量,避免上当受骗。