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 ...
随机推荐
- 使用DotfuscatorPro_4.9对软件dll库进行加密
点击settings选项,Disable String Encryption改成NO,具体里面的设置如下图. 再点击Rename选项下的options,左边的选项勾上,再把Renaming Schem ...
- 【GMT43智能液晶模块】例程十三:FATFS实验——文件操作
实验原理: STM32F429上带有SDIO控制器,GMT43液晶模块上将SDIO连接到TF卡座.本实验 将Micro SD卡插入TF卡座上即可.通过FATFS创建test.txt文件,并且写入数据0 ...
- python中的目录递归的创建和目录及其下的文件递归的删除
1,删除目录data下的train及其下的所有文件,相当于linux中的rm -rf import shutil shutil.rmtree('data/train') 2,递归的创建目录data/t ...
- bash计算上下行数据差值
for i in {1..60000}; do echo "`date +'%F %T'` `df /dev/md0 | grep 'data1'` "; sleep 1; don ...
- matlab将矩阵数据归一化到[0,255]
matlab将矩阵数据归一化到[0,255] function OutImg = Normalize(InImg) ymax=255;ymin=0; xmax = max(max(InImg) ...
- spring-boot-actuator报错Full authentication is required to access this resource
解决办法[设置端点访问 ]: 1, 关闭验证 management.security.enabled=false 2,开启HTTP basic认证 - 添加依赖 <dependency> ...
- http 请求 post get 长度限制
一.问题起因在某项目释放后Bug统计的附件<释放后问题>里有: 问题 原因 分析 备注 CSV处理时,如果处理的主题数过多,发生URL参数上限的错误: 可变长度的参数通过UR ...
- CentOS7安装Java还是无法使用javac
centos7.4 安装java之后,还是无法使用javac命令.报错提示: [root@ip---- centos]# javac bash: javac: command not found 解决 ...
- etl数据同步工具 kettle
kellet使用 https://www.cnblogs.com/gala1021/p/7814712.html
- Sqlalchemy model 文件自动生成
自动生成Sqlalchemy的models文件的包早用过了,有个字段类型做了改动,调了得10几分钟才搞定.记录下自动生成models文件的python包sqlacodegen sqlacodegen已 ...