selenium登录淘宝,requests抓取购物车:
import selenium import selenium.webdriver import selenium.webdriver.common.keys import requests import lxml import lxml.etree import time #登录淘宝需要滑到验证码,如果滑到失败的话,也可以通过支付宝扫码登录 ,会话前时间长一点,测试可以打印购物车信息 driver = selenium.webdriver.Firefox() driver.get("https://www.taobao.com") time.sleep(3) #切换到账户登录 elem=driver.find_element_by_xpath("//*[@class="site-nav-sign"]/a") #点到账户登录 time.sleep(3) elem.click() #点击一下 user=driver.find_element_by_id("TPL_username_1") time.sleep(2) password=driver.find_element_by_id("TPL_password_1") time.sleep(1) submit=driver.find_element_by_id("J_SubmitStatic") user.clear() #清理user 因为已经有了,再写会出现问题 password.clear()#清理user password time.sleep(2) user.send_keys("用户名") time.sleep(2) password.send_keys("密码") time.sleep(15) #手动滑动验证码 #submit.click() #点击一下 登录 time.sleep(30) # 等待页面加载 时间太短cookie会加载不出来 print("开始会话") req=requests.session() #会话 打开一个网页,直到关闭浏览器之前 都是会话 cookies=driver.get_cookies() #抓取全部的cookie for cookie in cookies: #把cookie加载到自定义的网页中 req.cookies.set(cookie['name'],cookie['value']) #把cookie加载到req中 req.headers.clear() #清空头 newpage=req.get("https://cart.taobao.com/cart.htm?") #购物车网址 print("会话完成") print(newpage.text) #购物车页面 #mytree=lxml.etree.HTML(newpage.text) #print(mytree.xpath("//*[@class="plus-switch"]/strong/text()")) #提取购物车的价格 text()为提取标签之间的内容 time.sleep(10) driver.close()