selenium 淘宝登入反爬虫解决方案(亲测有效)
前言
目前在对淘宝进行数据爬取的时候都会碰到,登入时的滑块问题,无论是手动还是脚本都不成功。这里的很重要一个原因是很多的网站都对selenium做了反爬虫机制。接下来是笔者参考网上的网友们的方法亲自测试的一个方法,希望可以帮助到大家。注意这里使用的浏览器是Chrome。所以使用的驱动也是chromedriver
一,淘宝反扒js
在淘宝登入页面加载的js中,可以看到怎么一行代码,如下图:

上图的这一行代码就对selenium进行了检测。所以我们只需要修改驱动的改行代码就可以。
二,修改chromedriver.exe
vim chromedriver.exe
cdc_通过键入/cdc_并按下来搜索return。- 按下启用编辑
a。 - 删除任意数量的内容
$cdc_lasutopfhvcZLmcfl并用等量字符替换已删除的内容。如果不这样做,chromedriver将会失败。 - 完成编辑后,按
esc。 - 要保存更改并退出,请键入
:wq!并按return。
完成上述步骤就可以了:下图是笔者的修改,就将最后一个字符l 改为 a

三,测试代码
注意下面代码的:chrome_option 以开发者模式,否则依然需要滑块
#!/usr/bin/env python
# -*- coding: utf-8 -*- from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC chrome_option = webdriver.ChromeOptions()
chrome_option.add_experimental_option('excludeSwitches', ['enable-automation']) # 以开发者模式 driver = webdriver.Chrome(options=chrome_option)
wait = WebDriverWait(driver, 10) def search():
driver.get('https://www.taobao.com')
try:
search_input = wait.until(
EC.presence_of_element_located((By.CSS_SELECTOR, '#q'))
)
search_submit = wait.until(
EC.presence_of_element_located((By.CSS_SELECTOR, '#J_TSearchForm > div.search-button > button'))
)
finally:
pass
search_input.send_keys('美食'.decode('utf-8'))
search_submit.click()
login() def login():
try:
login_before = wait.until(
EC.presence_of_element_located((By.CSS_SELECTOR, '#J_QRCodeLogin > div.login-links > a.forget-pwd.J_Quick2Static'))
)
login_before.click() username = wait.until(
EC.presence_of_element_located((By.CSS_SELECTOR, '#TPL_username_1'))
)
password = wait.until(
EC.presence_of_element_located((By.CSS_SELECTOR, '#TPL_password_1'))
)
username.send_keys('xxxxx') # 用户名
password.send_keys('xxxxx') # 密码
login_submit = wait.until(
EC.presence_of_element_located((By.CSS_SELECTOR, '#J_SubmitStatic'))
)
login_submit.click()
finally:
pass def main():
search() if __name__ == '__main__':
main()
selenium 淘宝登入反爬虫解决方案(亲测有效)的更多相关文章
- python获取淘宝登入cookies
重点:去新浪微博登入接口登入 一.代码 # coding=utf-8 import requests from selenium.webdriver.common.by import By from ...
- pyppeteer硬钢掉淘宝登入的滑块验证
完整代码我也不好公布,我可以给你们思路,以及部分代码动动脑子看看文档应该也能搞定 一.初始化Chromium浏览器相关属性 browser = await pyppeteer.launch({'hea ...
- 简单的抓取淘宝关键字信息、图片的Python爬虫|Python3中级玩家:淘宝天猫商品搜索爬虫自动化工具(第一篇)
Python3中级玩家:淘宝天猫商品搜索爬虫自动化工具(第一篇) 淘宝改字段,Bugfix,查看https://github.com/hunterhug/taobaoscrapy.git 由于Gith ...
- MyEclipse8.6启动后提示内存不足的解决方案(亲测,完美解决)
转自:http://www.bubuko.com/infodetail-1625857.html 最近可能由于公司项目大了,启动MyEclipse后经常提示内存不足的警告框,如下: 其实点击close ...
- Python攻破淘宝网各类反爬手段,采集淘宝网ZDB(女用)的销量!
声明: 由于某些原因,我这里会用手机代替,其实是一样的! 环境: windows python3.6.5 模块: time selenium re 环境与模块介绍完毕后,就可以来实行我们的操作了. 第 ...
- Selenium与phantomJS 登入豆瓣 有bug
# -*- coding:utf-8 -*- from selenium import webdriver from selenium.webdriver.common.keys import Key ...
- selenium 淘宝商品分页
通过这行代码确定每页的下一页,因为从淘宝的第4页 xpath就匹配不出下一页的位置#这是面向对象写法,不用的把self. 去掉即可next_button = self.driver.find_elem ...
- office2010使用mathtype时,出现未找到MathPage.WLL解决方案--亲测有用
安装mathtype时,出现如下错误: 解决方案: 参考此网址中的内容:http://www.mathtype.cn/wenti/word-jianrong.html 首先需要找到在Word加载的两个 ...
- secureCRT无操作自动登出时间修改(亲测可用)
转自:http://blog.sina.com.cn/s/blog_6bcf42010102vlt9.html secureCRT连接机器经常会因为一段时间无操作就退出了,提示timed out wa ...
随机推荐
- AI习惯的数学书籍、计算机经典书籍
http://download.csdn.net/download/wz619899442/8405297 https://www.amazon.com/Introduction-Automata-T ...
- 【将门创投】AI 往期技术分享
计算机视觉 1. 嘉宾:商汤科技CEO 徐立 文章回顾:计算机视觉的完整链条,从成像到早期视觉再到识别理解 2. 嘉宾:格灵深瞳CTO 赵勇 文章回顾:计算机视觉在安防.交通.机器人.无人车等领域的应 ...
- 【nodejs】初识 NodeJS(一)
构建一个基础的 http 服务器 需要引用 http 模块,http 模块是 node.js 的内置模块. var http = require('http'); http.createServer( ...
- sql日期格式小应用 记录一下
比如这样的数据 20170317 要转成2017-03-17 单独一步做不到 两步思想 先转成日期格式 在进行格式化 select CONVERT(varchar(10),(CAST(CONVERT( ...
- WinForm中一个窗体调用另一个窗体
[转] WinForm中一个窗体调用另一个窗体的控件和事件的方法(附带源码) //如果想打开一个 Form2 的窗体类,只需要: Form2 form = new Form2(); //有没有参数得看 ...
- linux中,history命令,显示时间戳?操作人?IP地址?
需求描述: 在linux环境中,有的时候为了审计的需要,要记录谁什么时间从什么IP登录,执行了什么命令,bash的history命令就能够记录这些信息,但是在默认的情况下,是不记录时间的,所以呢,在这 ...
- 编译PHP扩展amqp & php消息队列 rabbitmq
首先介绍下AMQP: AMQP——高级消息队列协议,目前比较有名气的实现大概就是大名鼎鼎的RabbitMQ了. RabbitMQ是一个在AMQP基础上完成的,可复用的企业消息系统.他遵循Mozilla ...
- Qt编写自定义控件10-云台仪表盘
前言 做过安防视频监控的同学都清楚,在视频监控系统软件上都可以看到一个云台控制区域,可以对球机进行下下左右等八个方位的运动控制,还可以进行复位,一般都是美工作图好,然后贴图的形式加入到软件中,好处是程 ...
- 【Zookeeper系列】Zookeeper简单介绍(转)
原文链接:https://www.cnblogs.com/sunddenly/p/4033574.html 一.分布式协调技术 在给大家介绍ZooKeeper之前先来给大家介绍一种技术——分布式协调技 ...
- 使用ReentrantLock和Condition来代替内置锁和wait(),notify(),notifyAll()
使用ReentrantLock可以替代内置锁,当使用内置锁的时候,我们可以使用wait() nitify()和notifyAll()来控制线程之间的协作,那么,当我们使用ReentrantLock的时 ...