3.点击登录选项
首先将鼠标移动至登录选项,右击检查
发现可以根据文字内容定为到选项、
发现可以根据文字内容定为到选项
#点击登录选项
driver.find_element_by_link_text(‘你好,请登录’).click()
4.进入登录界面,自动输入账号密码,登录账号
右击检查,发现<账户登录>选项可以通过文本定位,<账号输入框><密码输入框>分别由name属性进行定位,<登录>使用ID进行定位
1 #点击账户登录
2 driver.find_element_by_link_text(‘账户登录’).click()
3 #输入账号密码
4 driver.find_element_by_id(‘loginname’).send_keys(num)
5 driver.find_element_by_id(‘nloginpwd’).send_keys(pwd)
6 #点击登录键
7 driver.find_element_by_id(‘loginsubmit’).click()
8 #延时5s
9 time.sleep(5)
在我们点击登录之后,可能会出现一个滑块验证的环节,此环节可以用机器学习的方法自动通过验证,但是由于现在只是熟悉webdriver操作,可使用手动操作通过验证。
即在点击<登录>之后,添加延时 time.sleep(5) 并在5s之内通过滑块验证
5.点击购物车,勾选想要购买的物品,点击付款
购物车可以通过文本定位
driver.find_element_by_link_text(‘我的购物车’).click()
然后要勾选要下单的物品,点击去结算
勾选框我使用的是谷歌浏览器的xpath helper插件来进行定位,结算键可以同样使用文本来定位
#使用xpath语法定位复选框
driver.find_element_by_xpath(“/html[@class=’ jd_retina’]/body/div[@id=‘container’]/div[@class=‘cart-warp’]/div[@class=‘w’]/div[@id=‘jd-cart’]/div[@class=‘cart-main cart-main-new’]/div[@id=‘cart-list’]/div[@id=‘cart-item-list-01’]/div[@id=‘vender_8888’]/div[@class=‘item-list’]/div[@id=‘product_promo_50077743033’]/div[@id=‘product_100008492922’]/div[@class=‘item-form’]/div[@class=‘cell p-checkbox’]/div[@class=‘cart-checkbox’]/input[@class=‘jdcheckbox’]”).click()
#点击去结算
driver.find_element_by_link_text(‘去结算’).click()
此时若直接使用之前的定位方法来勾选和结算,代码运行后会报错,这是因为点击我的购物车之后,打开了一个新的网页,但是代码执行的默认网页还是在www.jd.com
所以程序找不到我们定位的位置,所以会提示错误
该段的正确代码是
#保存初始网页
wnhandle = driver.current_window_handle
#点击我的购物车
driver.find_element_by_link_text(‘我的购物车’).click()
#保存打开的所有网页
all_handle = driver.window_handles
#遍历保存的网页
for handle in all_handle:
#判断当前打开的网页是否为初始网页
if handle != wnhandle:
#若为新打开的网页,则切换到新网页
driver.switch_to.window(handle)
#设置延时
time.sleep(2)
#勾选复选框
driver.find_element_by_xpath(“/html[@class=’ jd_retina’]/body/div[@id=‘container’]/div[@class=‘cart-warp’]/div[@class=‘w’]/div[@id=‘jd-cart’]/div[@class=‘cart-main cart-main-new’]/div[@id=‘cart-list’]/div[@id=‘cart-item-list-01’]/div[@id=‘vender_8888’]/div[@class=‘item-list’]/div[@id=‘product_promo_50077743033’]/div[@id=‘product_100008492922’]/div[@class=‘item-form’]/div[@class=‘cell p-checkbox’]/div[@class=‘cart-checkbox’]/input[@class=‘jdcheckbox’]”).click()
#点击结算
driver.find_element_by_link_text(‘去结算’).click()
6.封装函数
将以上函数封装到模块中,方便调用
def login_in(self,num,pwd):
(1)Python所有方向的学习路线(新版)
这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
最近我才对这些路线做了一下新的更新,知识体系更全面了。
(2)Python学习视频
包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。
(3)100多个练手项目
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python爬虫全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:python)
前!**
因此收集整理了一份《2024年Python爬虫全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:python)
[外链图片转存中…(img-qDrEUm5a-1710874903554)]