selenium模拟登录淘宝

基于selenium模拟登录淘宝读取cookie
1.

from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains
#模拟鼠标操作
from  selenium.webdriver import ActionChains
#键盘按键操作
from  selenium.webdriver.common.keys import Keys
from  steting import  username,password
import json
options = webdriver.ChromeOptions()
user_ag = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
options.add_argument('user-agent=%s' % user_ag)
driver = webdriver.Chrome(executable_path="chromedriver", options=options)
# 打开淘宝登录页面
driver.get("https://login.taobao.com/member/login.jhtml?spm=a21bo.21814703.754894437.1.5af911d9tBuTtn&f=top&redirectURL=https%3A%2F%2Fwww.taobao.com%2F")
# 定义js代码
script = "Object.defineProperty(navigator,'webdriver',{get: ()=> false,});"
# 执行js代码
driver.execute_script(script)
time.sleep(2)
driver.find_element_by_name('fm-login-id').send_keys(username)
time.sleep(2)
driver.find_element_by_name('fm-login-password').send_keys(password)
time.sleep(2)
try:
    # 找到滑块
    slider = driver.find_element_by_xpath("//span[contains(@class, 'btn_slide')]")
    # 判断滑块是否可见
    if slider.is_displayed():
        # 点击并且不松开鼠标
        ActionChains(driver).click_and_hold(on_element=slider).perform()
        # 往右边移动258个位置
        ActionChains(driver).move_by_offset(xoffset=258, yoffset=0).perform()
        # 松开鼠标
        ActionChains(driver).pause(0.5).release().perform()
except:
    pass
time.sleep(2)
driver.find_element_by_xpath('//*[@id="login-form"]/div[4]/button').click()
time.sleep(10)
#获取网站cookie
dricookie = driver.get_cookies()
fw = open('taobbao.txt','w')
json.dump(dricookie,fw)
fw.close()


steting.py
username = '你的账号'
password = '你的密码'

import time
import  json
from selenium import webdriver
#模拟鼠标操作
from  selenium.webdriver import ActionChains
#键盘按键操作
from  selenium.webdriver.common.keys import Keys
from bs4 import BeautifulSoup
option = webdriver.ChromeOptions()
option.add_argument('--start-maximized')
driver = webdriver.Chrome(options=option)
driver.get('https://www.taobao.com')
#print(driver)
fr = open('taobbao.txt','r')
coojies = json.load(fr)
fr.close()
for cookie in coojies:
    driver.add_cookie(cookie)
time.sleep(6)
#driver.get('https://www.taobao.com')
 #刷新后,登录态还在
driver.implicitly_wait(2)
driver.refresh()
#关键字
keword = '男装'
#别的网页地址
url = 'https://s.taobao.com/search?q=' + keword
driver.get(url)
#解析网页代码
soup = BeautifulSoup(driver.page_source,'lxml')
#print(soup.text)
data  = soup.select('#mainsrp-itemlist .items .item')
for data_s in data:
    #名称
    name = data_s.find('div',class_='row row-2 title').a.text.strip()
    print(name)
    #价格
    price = data_s.find('div',class_='price').text
    if '¥' in price:
        price =price.replace("¥", " ")
        print(price)
    #da = data_s.select_one('div.shop >a').get_text.strip()
    #店名
    da = data_s.find('div',class_='shop').a.text.strip()
    print(da)
    #地区
    da_qu  = data_s.find('div',class_='location').text.strip()
    print(da_qu)

截图如下
#本地回生成一个.txt文件用来保存并读取cookie
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210519105644538.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjMzNzM3,size_16,color_FFFFFF,t_70#pic_center
在这里插入图片描述
在这里插入图片描述

总结模拟登录是基于cookie保持登录状态的如果cookie过期了就要重新登录了
1.淘宝反爬太强了。最后被限制了
知识点用了selenium各个模块鼠标模拟的用户操作的
登录之后保存为json格式
最后读取txt中的cookie要先登录下淘宝
driver.add_cookie(cookie)

fr = open(‘taobbao.txt’,‘r’)
coojies = json.load(fr)
最后
#刷新后,登录态还在
driver.implicitly_wait(2)
driver.refresh()

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值