淘宝 自动上下架 批量操作 python+chrome+selenium

时间:2024-03-02 21:52:35

开发环境:python27+chrome+selenium

首先配置好环境,需要的库是selenium,pip安装下即可

然后是chrome浏览器,对应chromedriver.exe   按照自己的chrome版本下载相应的版本(放到脚本目录下)  http://npm.taobao.org/mirrors/chromedriver/

准备工作就完成了

==============================================

需求分析:

这次接到客户需求是需要批量操作上下架,根据上架编码来操作,数量大概有几百个(人工操作无疑是要搞死人的)

分析了下需求,觉得用selenium来模拟操作实现比较方便

那就开干吧!

1,首先是进行调试开发

写脚本来运行功能模块是非常蛋疼的,要是脚本出错,还得手动关闭chromedriver.exe,和浏览器

这里使用shell来调试开发,个人觉得相当方便,出错了也没关系,可以反复调试

首先导入库

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

然后创建一个driver对象并打开浏览器

chromedriver = "chromedriver.exe"
driver = webdriver.Chrome(executable_path=chromedriver)
driver.set_window_size(1280,800)
driver.get(\'https://myseller.taobao.com/home.htm\')

输入完应该会打开浏览器并打开淘宝页面,扫描下二维码进入后台

这里我说下我常用的获取元素的方法

driver.find_element_by_xpath("xxxxxx")

大家有可能觉得xpath不好写,其实没关系,使用chrome的开发者工具,定位到元素后,直接可以拷贝xpath

操作方法:在需要定位的元素上面右键-检查,会直接跳到元素上面

 在源代码上面右键,复制-复制xpath即可获取到这个元素,

然后用driver.find_element_by_xpath("xxxxxx")操作下就能获取到元素了,大家可以打印这个元素的text

print driver.find_element_by_xpath("xxxxxx").text 来看看获取的对不对

 

然后操作就比较简单了

进入到出售中的商品或者仓库中的商品

获取到1的输入框,然后输入内容,输入回车即可进行搜索操作

driver.find_element_by_xpath(\'//*[@id="outer-id"]\').clear()#清除输入框内的内容
driver.find_element_by_xpath(\'//*[@id="outer-id"]\').send_keys("1111")#输入上架编码
driver.find_element_by_xpath(\'//*[@id="outer-id"]\').send_keys(Keys.ENTER)#输入回车键,等于按下回车进行搜索

然后定位到2处的选中框,点击勾选

driver.find_element_by_xpath(\'//*[@id="J_DataTable"]/div[2]/table/thead/tr[2]/td/div/input[2]\').click()

再定位到3处的下架按钮,点击

driver.find_element_by_xpath(\'//*[@id="J_DataTable"]/div[2]/table/thead/tr[2]/td/div/button[1]\').click()

这样就完成了一次操作,最后加入循环即可完成批量操作

 

 

 在shell中调试完毕后输入driver.quit()即可关闭浏览器,结束调试,最后把操作过程的代码整合起来,加入各种状态判断(比如是否存在元素之类的)

上架操作也是如此

就可以完成脚本了,再用tk简单画个界面,pyinstaller打包一下,就完成了

=======================================================

结语:

python+selenium是非常方便的web自动化操作工具,完全可以使用此工具进行批量操作的脚本开发,提升效率