selenium登录京东,requests抓取购物车:
import selenium import selenium.webdriver import selenium.webdriver.common.keys import requests import lxml import lxml.etree import time #selenium + requests 抓取购物车的价格 速度加快了不少 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(15) # 等待页面加载 时间太短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.jd.com/") #购物车网址 print("会话完成") print(newpage.text) #页面 mytree=lxml.etree.HTML(newpage.text) print(mytree.xpath("//*[@class="plus-switch"]/strong/text()")) #提取购物车的价格 text()为提取标签之间的内容 time.sleep(10) driver.close()