selenium模拟登录京东,未解决验证码问题,但是可以在下方设置time.sleep(),时间长一点手动操作验证码,实现成功登录,并抓取了购物车价格:
import selenium import selenium.webdriver import selenium.webdriver.common.keys import lxml import lxml.etree import time #测试已成功登录,并抓取了购物车的价格 driver = selenium.webdriver.Chrome() driver.get("https://passport.jd.com/uc/login?ltype=logout&ReturnUrl=https://home.jd.com/") time.sleep(3) #切换到账户登录 elem=driver.find_element_by_xpath("//*[@class="login-tab login-tab-r"]/a") #点到账户登录 elem.click() #点击一下 user=driver.find_element_by_id("loginname") password=driver.find_element_by_id("nloginpwd") submit=driver.find_element_by_id("loginsubmit") user.clear() #清理user 因为已经有了,再写会出现问题 user.send_keys("用户名") password.send_keys("密码") time.sleep(1) submit.click() #点击一下 time.sleep(13) driver.get("https://cart.jd.com/") time.sleep(30) #如果特定验证码比较麻烦,手动搞定 print(driver.page_source) #打印网页源代码 data=driver.page_source mytree=lxml.etree.HTML(data) print(mytree.xpath("//*[@class="plus-switch"]/strong/text()")) #提取购物车的价格 text()为提取标签之间的内容 time.sleep(10) driver.close()