使用淘宝账号密码模拟登陆淘宝

  • 准备代理
  • 登陆的代码

准备代理

  • 为什么需要代理呢?因为淘宝有检测是否是chromedriver来访问的代码
通过浏览器分析js代码,可以找得到这个文件存在校验逻辑
https://g.alicdn.com/secdev/sufei_data/3.9.9/index.js
function r() {return "$cdc_asdjflasutopfhvcZLmcfl_"in u || f.webdriver}
  • 1.需要修改chromedriver的内容
可以直接编辑chromedriver
vim chromedriver
直接将cdc_asdjflasutopfhvcZLmcfl_变量替换
:1,$s/cdc_asdjflasutopfhvcZLmcfl_/cat_asdjflasutopfhvcZLmcfl_/g
  • 2.需要修改 navigator.webdriver 让其为false,因为在正常的浏览器控制台这个值是false的,在chromedriver打开这个值为true

  • 我这里也使用的是mitmproxy ,因为 mitmproxy支持python编程,很方便通过代码进行控制

  • 使用流程

    • pip install mitmproxy
    • 编写脚本
    from mitmproxy import http
    '''
    需要安装 mitmproxy 代理
    # mitmdump -s proxy.py -p 9000 -q需要在浏览器安装它的证书才行
    证书目录
    cd
    cd .mitmproxy
    将这个安装到浏览器  mitmproxy-ca-cert.cer
    '''
    def response(flow: http.HTTPFlow):# sufei_data 这个里面有检测 if flow.request.url.find('sufei_data'):    text = flow.response.textnew_text = text.replace('return "$cdc_asdjflasutopfhvcZLmcfl_"in u || f.webdriver', 'return false')flow.response.text = new_textprint('注入成功')
    
    • 浏览器安装mitmdump证书

      • 证书位置放在 /Users/you/.mitmproxy 目录下
      • 具体安装方法参考 About Certificates
    • 开启代理 mitmdump -s proxy.py -p 9000 -q -q不打印mitmdump的日志

登陆的代码

import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver import ChromeOptions
from selenium.webdriver import ActionChainsclass TaobaoSpider():driver = Nonelogin_url = 'https://login.taobao.com/member/login.jhtml'index_url = 'https://taobao.com/'def __init__(self,username,password):options = ChromeOptions()# 不加载图片,加快访问速度# options.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2})# 设置为开发者模式,避免被识别options.add_experimental_option('excludeSwitches',['enable-automation'])# 使用代理options.add_argument('--proxy-server=http://127.0.0.1:9000')options.add_argument('disable-infobars')self.driver = webdriver.Chrome(executable_path='../chromedriver',options=options)# 过 window.navigator.webdriver = trueself.driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": """Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"""})self.username = usernameself.password = passworddef run(self):self._start_request()def _start_request(self):self.driver.get(url=self.login_url)time.sleep(1)self.driver.find_element_by_xpath('//*[@id="fm-login-id"]').send_keys(self.username)time.sleep(1)self.driver.find_element_by_xpath('//*[@id="fm-login-password"]').send_keys(self.password)time.sleep(1)# 是否出现滑动验证if self._lock_exist():self._unlock()# 点击登陆self.driver.find_element_by_xpath('//*[@id="login-form"]/div[4]/button').click()# 等待登陆成功WebDriverWait(self.driver, 600).until(EC.presence_of_element_located((By.XPATH, '//*[@id="mtb-nickname"]')))# 登陆成功self.driver.get(url=self.index_url)def _lock_exist(self):'''判断是否存在滑动验证'''try:self.driver.find_element_by_xpath('//*[@id="nocaptcha-password"][@style="display: block;"]')return Trueexcept Exception as err:return Falsedef _unlock(self):bar_element = self.driver.find_element_by_id('nc_1_n1z')ActionChains(self.driver).drag_and_drop_by_offset(bar_element, 300, 0).perform()time.sleep(1.5)# 出现刷新按钮try:self.driver.find_element_by_xpath('//*[@id="nocaptcha-password"]/div/span/a').click()self._unlock()except Exception as err:print(err)raise Exception('滑动验证失败,被监测到了')def _parse(self):passif __name__ == "__main__":username = input("请输入你的淘宝用户名:")  password = input("请输入密码:")spider = Taobao(username, password)spider.run()

python爬虫 模拟淘宝使用账号密码登陆 用mitmdump防止检测出使用chromedriver相关推荐

  1. Python+Selenium模拟淘宝滑块并爬取商品数据

    注:如果侵犯了Alibaba的权益,请联系我删除. 上一篇博客已经完成了模拟淘宝登陆,本节主要记录如何爬取淘宝商品列表页数据,同时如何模拟人的操作完成滑块的验证. 代码如下: #encoding=ut ...

  2. 【python】模拟淘宝的客服自动回复系统-socket,json,time模块的应用

    最近在研究soctet模块的过程中,尝试做个小的练习,第一反应是做个类似qq或者微信的即时聊天,这个需求相对比较简单,采用UDP协议很快就可以实现,为了提高点难度,于是决定尝试模拟淘宝的自动回复功能, ...

  3. Python selenium模拟淘宝登陆

    通过selenium定位到各个元素,通过相关操作(如输入框的输入,按钮的点击等)来模拟人的真实操作流程 流程是通过绕个圈子,用微博账号登陆来绕过淘宝登陆,不过事先需要将微博账号与淘宝账号进行绑定 下面 ...

  4. python爬虫—关于淘宝商品的爬取

    之前爬过一次淘宝,当时这个网站没怎么设置很厉害的反爬措施,能够很轻松地获取上面的数据:销量啊.价格啊.以及好评等等,做一些可视化的图表,对于将要在淘宝平台售卖商品的商家具有很好的参考意义. 现在的淘宝 ...

  5. Python 爬虫知识点 - 淘宝商品检索结果抓包分析(续一)

    通过前一节得出地址可能的构建规律,如下: https://s.taobao.com/search?data-key=s&data-value=44&ajax=true&_ksT ...

  6. 【Java爬虫-模拟淘宝登录】

    已失效!1 package demo2; 2 3 import org.openqa.selenium.By; 4 import org.openqa.selenium.WebElement; 5 i ...

  7. Python爬虫之淘宝数据爬取(商品名称,价格,图片,销量)

    代码详细注释,仅供交流与参考,不作商业用途 代码参考北京理工大学嵩天老师 import requests #导入第三方库 import re import osdef getHTMLText(url) ...

  8. Python爬虫-DAY5淘宝页面爬取

    申明:本章主要是个人的学习心得笔记 学习来源:中国MOOC课网 https://www.icourse163.org/learn/BIT-1001870001?tid=1461946455#/lear ...

  9. python爬虫淘宝和天猫的区别_荐真实难过,当python爬虫对上淘宝和天猫,我又失败了!...

    我从来没想过淘宝天猫的反扒机制这么强,随着学习的推进,我用上了selenium,开始爬取这些网站,然后我输很彻底,下面我讲一下我失败的最后倔强! 果然学习不会顺水成舟,该碰壁还是得碰壁,我拿着18年的 ...

最新文章

  1. java pdf转swf_pdf转换成swf的代码
  2. Hyperledger Fabric相关文件解析
  3. 文档模型(JSON)使用介绍
  4. 学习转载:Linux命令--grep|正则表达式
  5. python class类里给列表排序_python笔记:Class(类)
  6. python应用领域介绍
  7. 关于 error: LNK1123: failure during conversion to COFF: file invalid or corrupt 错误的解决方案【Qt】【 VS2010】
  8. oracle的redo和undo,Oracle的redo 和undo的區別
  9. 【luogu P4114 Qtree1】 题解
  10. 统计学习方法读书笔记8-朴素贝叶斯
  11. 动态设置control的显示与隐藏
  12. 类似%-30的字串解码办法
  13. 毕设题目:Matlab心电信号
  14. C# WinForm 中嵌入另一个.EXE程序(给程序加锁)
  15. 安卓手机怎么设置禁止使用流量_安卓怎样禁止软件联网 安卓限制应用联网app...
  16. Linux驱动之等待队列
  17. 技嘉H510M H主板安装gtx660折腾记录
  18. 计算机基础学习记录2-1
  19. 【话题】如何看待AI人工智能
  20. 手写webserver服务器

热门文章

  1. 简单易懂的笔记本电脑一键安装win10系统教程
  2. 西门子 SMART PLC 扫码串口通讯
  3. 2022年超实用的推特营销策略
  4. Gershgorin圆盘定理
  5. 狗狗拉稀黑色的怎么办
  6. 分享灵动MM32L052PF替代STM32F042C6T6
  7. 机械设备制造企业,如何借助ERP系统做好委外加工管理?
  8. [附源码]Python计算机毕业设计SSM康健医药公司进销存管理系统(程序+LW)
  9. 猫眼电影是怎么从美团网长出来的?
  10. Camera常见术语缩写总结