在本篇文章里小编给大家整理的是一篇关于Python中免验证跳转到内容页的实例代码,有兴趣的朋友们可以学习分享下。

相信很多人在浏览网页时,经常会碰到需要输入验证码才可以继续浏览的情况吧,遇到这种问题,大多数人只能进行繁琐的注册验证,今天小编教大家只要使用python就可以免验证方法。

以经常用到的解答网站——上学吧为例,在网站里点击答案页面,会显示验证后才可以查看提示,下面就使用python实现跳过验证码。

我们需要通过python构造随机的 X-Forwarded-For 信息来绕过 ASP 网站的 IP 检测,可以实现对输入的网址正确性进行检查、对验证码核验不通过时的处理等等。

python免验证跳转页面代码如下:

# 绕过验证码无限次获取上学吧题目答案

# 上学吧网址:https://www.shangxueba.com/ask

importos

importrandom

importrequests

importurllib3

urllib3.disable_warnings()# 这句和上面一句是为了忽略 https 安全验证警告,参考:https://www.cnblogs.com/ljfight/p/9577783.html

frombs4importBeautifulSoup

fromPILimportImage

defget_verifynum(session):# 网址的验证码逻辑是先去这个网址获取验证码图片,提交计算结果到另外一个网址进行验证。

r=session.get("https://www.shangxueba.com/ask/VerifyCode2.aspx",verify=False)# HTTPS 请求进行 SSL 验证或忽略 SSL 验证才能请求成功,忽略方式为 verify=False。参考:https://www.cnblogs.com/ljfight/p/9577783.html

withopen('temp.png','wb+')asf:

f.write(r.content)

image=Image.open('temp.png')

image.show()# 调用系统的图片查看软件打开验证码图片,如果不能打开,可以自己找到 temp.png 打开。

verifynum=input("\n请输入验证码图片中的计算结果:")

image.close()

os.remove("temp.png")

returnverifynum

defget_question(session):

r=session.get(link)

soup=BeautifulSoup(r.content,"html.parser")

description=soup.find(attrs={"name":"description"})['content']# 抓取题干内容

returndescription

defget_answer(session,verifynum,dataid):

data1={

"Verify":verifynum,

"action":"CheckVerify",

}

session.post("https://www.shangxueba.com/ask/ajax/GetZuiJia.aspx",data=data1)# 核查验证码正确性

data2={

"phone":"",

"dataid":dataid,

"action":"submitVerify",

"siteid":"1001",

"Verify":verifynum,

}

r=session.post("https://www.shangxueba.com/ask/ajax/GetZuiJia.aspx",data=data2)

soup=BeautifulSoup(r.content,"html.parser")

ans=soup.find('h6')

print("\n"+'-'*45)

if(ans):# 只有验证码核查通过才会显示答案

print("\n题目:"+get_question(session))

print(ans.text)

else:

print('\n没有找到答案!请检查验证码或网址是否输入有误!\n')

print('-'*45)

if__name__=='__main__':

s=requests.session()

whileTrue:

s.headers.update({"X-Forwarded-For":"%d.%d.%d.%d"%(random.randint(120,125),random.randint(1,200),random.randint(1,200),random.randint(1,200))})# 这一句是整个程序的关键,通过修改 X-Forwarded-For 信息来欺骗 ASP 站点对于 IP 的验证。

link=input("\n请输入上学吧网站上某道题目的网址,例如:https://www.shangxueba.com/ask/8952241.html\n\n请输入:").strip()# 过滤首尾的空格

if(link[0:31]!="https://www.shangxueba.com/ask/"orlink[-4:]!="html"):

print("\n网址输入有误!请重新输入!\n")

continue

dataid=link.split("/")[-1].replace(r".html","")# 提取网址最后的数字部分

if(dataid.isdigit()):# 根据格式,dataid 应该全部为数字,判断字符串是否全部为数字,返回 True 或者 False

verifynum=get_verifynum(s)

get_answer(s,verifynum,dataid)

else:

print("\n网址输入有误!请重新输入!\n")

continue

注意:其中 requests 和 beautifulsoup 两个库需要另外安装,建议使用 pip 方式安装:

pip install requestspip install beautifulsoup4

Python 脚本运行流程:

首先复制上学吧某道题目的网址,类似以下格式:

然后运行python脚本,复制粘贴网址。

按Enter键,自动下载验证码图片存为 temp.png,然后自动读取图片并展示,也可以手动打开同目录下的 temp.png 图片。

最后在命令行窗口输入验证码图片中的计算结果即可获取题目详情以及正确答案。

到此这篇关于Python中免验证跳转到内容页的实例代码的文章就介绍到这了

扫下方二维码加老师微信

或是搜索老师微信号:XTUOL1988【切记备注:学习Python】

领取Python web开发,Python爬虫,Python数据分析,人工智能等学习教程。带你从零基础系统性的学好Python!

也可以加老师建的Python技术学习教程qq裙:245345507,二者加一个就可以!

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

万水千山总是情,点个【在看】行不行

*声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜

python怎么跳转到某一行代码_Python中免验证跳转到内容页的实例代码相关推荐

  1. python用什么软件编程1001python用什么软件编程-Python中免验证跳转到内容页的实例代码...

    相信很多人在浏览网页时,经常会碰到需要输入验证码才可以继续浏览的情况吧,遇到这种问题,大多数人只能进行繁琐的注册验证,今天小编教大家只要使用python就可以免验证方法. 以经常用到的解答网站――上学 ...

  2. 树莓派退出python的代码_Python实现树莓派WiFi断线自动重连的实例代码

    实现 WiFi 断线自动重连.原理是用 Python 监测网络是否断线,如果断线则重启网络服务. 1.Python 代码 autowifi.py,放在 /home/pi 目录下: #!/usr/bin ...

  3. python抓包代码_Python抓包并解析json爬虫的完整实例代码

    Python抓包并解析json爬虫FwA免费资源网 在使用Python爬虫的时候,通过抓包url,打开url可能会遇见以下类似网址,打开后会出现类似这样的界面,无法继续进行爬虫:FwA免费资源网 Fw ...

  4. Python语言学习:在python中,如何获取变量的本身字符串名字而非其值/内容及其应用(在代码中如何查找同值的所有变量名)

    Python语言学习:在python中,如何获取变量的本身字符串名字而非其值/内容及其应用(在代码中如何查找同值的所有变量名) 目录

  5. python读取word页眉_python批量替换页眉页脚实例代码

    简介 本文分享的实例代码主要通过python语言实现批量替换页眉页脚的操作功能,具体如下. 代码 #!/usr/bin/env python # -*- coding: utf-8 -*- impor ...

  6. php左右滑动翻页代码,C#_NGUI实现滑动翻页效果实例代码,废话不多说了,直接给大家上 - phpStudy...

    NGUI实现滑动翻页效果实例代码 废话不多说了,直接给大家上干货了. 具体代码如下所示: using UnityEngine; using System.Collections; public cla ...

  7. html图片多tab切换代码,CSS实现Tab页切换实例代码

    1.hover 移入其父元素.navI时,触发鼠标的hover态,给父元素添加样式为position:relative;z-index:1;.从而提升了层级z-index.在其子元素导航内容的层级比拼 ...

  8. python为什么会出现无响应怎么办_python定时检测无响应进程并重启的实例代码

    总有一些程序在windows平台表现不稳定,动不动一段时间就无响应,但又不得不用,每次都是发现问题了手动重启,现在写个脚本定时检测进程是否正常,自动重启. 涉及知识点 schedule定时任务调度 o ...

  9. python爬取网易云音乐飙升榜音乐_python爬取网易云音乐热歌榜实例代码

    首先找到要下载的歌曲排行榜的链接,这里用的是: https://music.163.com/discover/toplist?id=3778678 然后更改你要保存的目录,目录要先建立好文件夹,例如我 ...

最新文章

  1. jQuery源码-jQuery.fn.each jQuery.each
  2. 【 Vivado 】打包属于自己的IP
  3. CSS:给 input 中 type=text 设置CSS样式
  4. React Native的安装和初始化(android /ios)
  5. java中枚举类型详解
  6. vim删除多行_vim文本编辑器
  7. deebot扫地机器人响四声_中国智能扫地机器人重点制造基地企业名录(2020年版)...
  8. Java为什么要有堆外内存_作为 Java 开发者,你需要了解的堆外内存知识
  9. 浅议PIM(一文看懂PIM)
  10. 前端页面因为过滤器出现路径不正确,css效果不展示
  11. 计算机网络华为模拟器,华为模拟器eNSP Win10版
  12. windows10 64位 JDK1.8 下载
  13. 朱嘉明《火药:改变了人类历史演变模式》
  14. 深度学习HDR算法总结
  15. 【强连通分量】 Kosaraju和Tarjan算法 (标准模板+详细注释)
  16. 纯前端实现—用户注册登录界面
  17. idm+百度下载助手解决百度网盘限速
  18. gateway的官方文档解读
  19. 计算机网络应用层报告,计算机网络实验报告应用层
  20. javascript replace 替换全部

热门文章

  1. java 重载 equals_实现Student类的equals重载函数
  2. c语言中- gt he,C语言中deta,fabs,lt;stdlib.hgt;,lt;stdio.hgt;分别是什么意思
  3. php如果实现日历的制作,教大家制作简单的php日历
  4. np.random.seed(0)作用
  5. 如何有效解决C与C++的相互调用问题
  6. 面试题:根据Unix时间戳计算时间
  7. unity改变图片像素大小_类动森像素画反向转换 (xBR)
  8. 第二季1:图像基础知识
  9. c++远征之继承篇——隐藏,isa,虚析构函数
  10. django 模板继承与重写