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

在本篇文章里小编给大家整理的是一篇关于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,二者加一个就可以!

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/467918.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

正则表达

文章目录正则表达数据验证字面值\d查数字^\w特殊符号匹配规则.除|n所有字符\d查数字\D非数字![在这里插入图片描述](https://img-blog.csdnimg.cn/20200203213049246.png)\s空白字符![在这里插入图片描述](https://img-blog.csdnimg.cn/20200203213145246.png)\S非空白字符![在…

《从三月开始……》

很多时候,我们对不同现状有所不满——对无法冲破的工作瓶颈不满对久不增长的收入不满对久不下降的体重不满对无法提高的学分不满对没有进展的关系不满……似乎总有某个方面的不顺给我们带来烦恼为此,我们也做了“努力”——我们通过各种渠道和平台去查阅…

Thread.join()

1.join() join()的作用是:“等待该线程终止”,这里需要理解的就是该线程是指的主线程等待子线程的终止。也就是在子线程调用了join()方法后面的代码,只有等到子线程结束了才能执行。 主线程生成并起动了子线程,而子线程里要进行大…

管理系统制作的python代码_python学生管理系统代码实现

本文实例为大家分享了python学生管理系统的具体代码,供大家参考,具体内容如下类class Student:stuID ""name ""sex "M"classID "NULL"#set IDdef setStuID(self,stuID):self.stuID stuIDdef setName(self,…

从未知到2019年的文章汇总

2018年下半年我正式把这个遗弃了很久的微信号运营起来,2019年应该是比较正式的一年,也是成长最快的一年。从开始捣鼓微信公众号到现在,我写了很多东西。这篇文章把之前写过的,不管是好的,还是不好的,都整理…

python modbus控制plc_python Modbus基础

modbus 协议 数据格式00 00 00 00 00 06 01 03 00 00 00 02 ascii码第一位:事务处理标识符 由服务器复制,通常为0第二位:事务处理标识符 由服务器复制,通常为0第三位:协议标识符0第四位:协议标识符0第五…

Binder远程转本地

前言在[031]Binder线程栈复用中,我们说到Binder驱动通过“线程栈复用”减少线程数,我们来讲一讲另外一个机制“远程转本地”,将远程Binder调用转化成本地方法调用。一、写个Demointerface IServiceB {void sendMsg(String msg); }1.1 Client…

linux这样去掉文件里高亮字体

终端输入:noh转载于:https://www.cnblogs.com/S--S/p/7365407.html

pythonb超分辨成像_Papers | 超分辨 + 深度学习(未完待续)

1. SRCNN1.1. Contributionend-to-end深度学习应用在超分辨领域的开山之作(非 end-to-end 见 Story.3 )。指出了超分辨方向上传统方法( sparse-coding-based SR methods )与深度学习方法的关系,insightful 。SRCNN网络非常简单,PSNR、SSIM 等却有小幅提升…

5类主题词汇(2)

社会热点 信息科技 cyber 网络 telecommunication电讯 network网络 website 网站 blog 博客 access接近 进入 profile概况 简介 database数据库 digital数字的 数码的 keyboard键盘 hardware硬件 software软件 application程序 surf冲浪 surf on the internet 网上冲浪 chat …

存储对手机性能的影响

前言几年以前,我被派去厦门上门去分析一个用户的手机卡顿问题,该用户的手机经常莫名无响应,刷机,恢复出厂都没有用,经过一通分析,原来该用户从熟人店里买到了一张盗版的SD卡(这年头坑的就是朋友…

python周末吃什么_中午不知道吃什么?用Python爬取美团外卖评论帮你选餐!

分析url的网页源代码,在源代码里有我们想要的评论数据,我们可以用正则(在这里正则还是比较好用的)把我们想要的信息弄下来开启循环,批量抓取保存数据至文本和数据库defparse_one_page(html):pattern2 re.compile( "m_type":"…

5类主题词汇(3)

道德价值 business ethics商业道德 professional ethics个人道德 virtue美德 moral value道德价值 improve public morals改进社会风气 safeguard public morals维护社会风气 injure public morality损害公共道德 fight against piracy抵制盗版 observe/obey the laws守法 be …

进阶攻略|前端最全的框架总结

前端的技术日渐更新,最近得空,花了一上午的时间,将前端常见的UI框架总结了一下,在开发的过程之中,有了这些,不断能够提高自己的工作效率,还可以在工作之余了解更多。希望大家喜欢。1.Layui官方网…

你知道char *s和char s[]的区别吗?

在一个夜深人静的晚上,有一个读者给我发了一个C语言题目。他问我,发哥,帮我看看这个代码有什么问题。我看了代码之后,心里一阵恐慌。我自认为我不是C语言高手。但我确实是一个喜欢解决问题的男人。就是在这样的背景驱使下&#xf…

5类主题词汇(4)

求职就业类 unemployment失业 job-hunting找工作 position职位 job resume就业简历 job interview工作面试 job prospects职业背景application letter求职信 the want ads招聘工作 fill in/out application form填写申请表 accept/take the post接受职位 take over the post接…

python连连看小游戏_利用Python制作一个连连看小游戏,边学边玩!

导语今天我们将制作一个连连看小游戏,让我们愉快地开始吧~开发工具Python版本:3.6.4相关模块:pygame模块;以及一些Python自带的模块环境搭建安装Python并添加到环境变量,pip安装需要的相关模块即可。先睹为快在cmd窗口…

上Google Adsense个人的一点体验

最近我想开通一个Google Adsense帐号,因为以前注册过一个Google帐号,所以我以为两个是可以共通的,因为很久没上Google帐号,我记不太清密码了,所以我先是登录了Google,登上去了,密码没记错。然后…

通俗易懂,嵌入式Linux驱动基础

前言上一篇分享的:《从单片机工程师的角度看嵌入式Linux》中有简单提到Linux的三大类驱动:我们学习编程的时候都会从hello程序开始。同样的,学习Linux驱动我们也从最简单的hello驱动学起。驱动层和应用层 还记得实习那会儿我第一次接触嵌入式…

记,我在深圳买房

今天晚上,有点时间,把这次买房的经历写下来。我并不是想炫耀,也不是想说明什么,只是为了记录自己的生活。这是对自己的一个阶段性总结,也希望自己的意见和想法对读者们有些帮助。再者,凭自己的努力&#xf…