爬虫黑科技-绕开百度人机验证

本文介绍了如何使用Python的无头浏览器在登录百度指数网站时避免触发人机验证。通过模拟人类操作,如改变窗口大小、设置输入间隔,可以成功绕过验证码。文章提供了一种在2018年11月18日前有效的解决方案,并强调要关注未来可能出现的变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

腾讯DeepOcean原创文章:dopro.io/reptile.htm…

在“爬虫的攻守之道(一)”中你可能已经了解到了无头浏览器的作用以及使用的方法,那么本篇文章就让我们一起用无头浏览器做点事情。
 

是的你没有看错,我们要“搞”的对象就是百度指数这个网站,不知道你平时是否会应用到这里面的数据呢?

今天的主要目标就是使用无头浏览器登录百度指数网站,并且绕开它的人机验证,不知道你发现没有,当我们人为正常登录这个网站的时候就不会出现字母、数字或者汉字验证码,而使用无头浏览器登录的时候就会出现这些验证码,闲言少叙我们直接开始正题。

 

一 正常人为登录为什么不出现验证码?

 

我们在使用浏览器正常登录百度指数网站的时候发现一般不会弹出验证码的提示。但是如果你使用无头浏览器去登录的时候就会出现验证码,那么这两者登录的区别在哪里呢?

经过我不断的验证发现了两个问题,当我们使用无头浏览器登录的时候做一些类似于人类的操作,例如在窗口中滑动鼠标,或者改变窗口的大小,这样百度指数网站就会认为你是人为的在操作。

第二个问题就是在我们使用无头浏览器输入账号和密码的时候,我们在手动输入密码的时候或多或少的在输入字符之间都会存在时间间隔,而使用无头浏览器的时候程序会零间隔的输入,这样百度指数网站就会认为你是一个程序在输入了。

 

二 python无头浏览器准备

 

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
import sys
复制代码

word = sys.argv[1] phone = '此处是你登录百度指数网站的用户名' password = '此处是你登录百度指数网站的密码' 复制代码

 

在上面的代码中我们引入了一些python的库,接下来就是使用无头浏览器前的准备工作。

 

#打开chrome无头浏览器
opt = webdriver.ChromeOptions()
opt.set_headless()
driver = webdriver.Chrome(options=opt)
executor_url = driver.command_executor._url
session_id = driver.session_id

#将打开的浏览区url和session_id存储起来,提供给下一次应用 file = open('browserMsg.txt','w') file.writelines([executor_url, 'n',session_id]) file.close()

复制代码

driver.implicitly_wait(

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值