Python使用爬虫猜密码


Posted in Python onFebruary 19, 2016

我们可以通过python 来实现这样一个简单的爬虫猜密码功能。下面就看看如何使用python来实现这样一个功能。

Python使用爬虫猜密码

这里我们知道用户的昵称为:heibanke

密码是30以内的一个数字,要使用requests库循环提交来猜密码

主要需要用到的库是requests库

安装requests库

pip install requests

要使用到的request库的功能是表单的提交

requests.post(url,data)#通过post()语言向网址url发生data

首先查看网页源码,找到需要提交的内容的参数名称

 Python使用爬虫猜密码

可以看到需要提交的昵称的name=“username”,密码的name=“password”

requests传入网址的data中中需要包含这两个参数

url = "http://www.heibanke.com/lesson/crawler_ex01/"
params = {'username':'heibanke','password': str(password)}
r = requests.post(url,data=params)

建立循环,密码从1开始猜,不对就+1,直至猜中。

关键在于如何判断猜错了没?

首先看看猜错了的显示:

 Python使用爬虫猜密码

我们可以读取出该页面的文字,检测文字中有没有"错误"二字,有就代表提交的密码错误,没有就表示正确。要实现此功能,需要用到find()函数

find()函数介绍:

函数原型:find(str, pos_start, pos_end)

解释:

•str:被查找“字串”
•pos_start:查找的首字母位置(从0开始计数。默认:0)
•pos_end: 查找的末尾位置(默认-1)

返回值:如果查到:返回查找的第一个出现的位置。否则,返回-1。

example:

str = "0123"
print str.find("2",1,-1) #2
print str.find("1") #0,首次出现的位置

完整程序:

import requests
password=0
while True:
url = "http://www.heibanke.com/lesson/crawler_ex01/"
params = {'username':'heibanke','password': str(password)}
r = requests.post(url,data=params)
if r.text.find(u"错误")>0:#判断某次输入是否正确
password=password+1
else:
print password#,最后打印出password为6,居然输入06,006,0006都是对的
break

运行结果password为6

Python 相关文章推荐
浅析python 中__name__ = '__main__' 的作用
Jul 05 Python
Python单元测试框架unittest使用方法讲解
Apr 13 Python
python去除所有html标签的方法
May 05 Python
python记录程序运行时间的三种方法
Jul 14 Python
pandas 获取季度,月度,年度首尾日期的方法
Apr 11 Python
举例讲解Python常用模块
Mar 08 Python
感知器基础原理及python实现过程详解
Sep 30 Python
Python数据可视化:顶级绘图库plotly详解
Dec 07 Python
python入门之井字棋小游戏
Mar 05 Python
Django日志及中间件模块应用案例
Sep 10 Python
Django视图类型总结
Feb 17 Python
从np.random.normal()到正态分布的拟合操作
Jun 02 Python
使用Python简单的实现树莓派的WEB控制
Feb 18 #Python
在Ubuntu系统下安装使用Python的GUI工具wxPython
Feb 18 #Python
以一个投票程序的实例来讲解Python的Django框架使用
Feb 18 #Python
使用Python生成随机密码的示例分享
Feb 18 #Python
使用Python的urllib2模块处理url和图片的技巧两则
Feb 18 #Python
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
Feb 18 #Python
使用Python的PIL模块来进行图片对比
Feb 18 #Python
You might like
使用PHP遍历文件目录与清除目录中文件的实现详解
2013/06/24 PHP
php正则匹配文章中的远程图片地址并下载图片至本地
2015/09/29 PHP
PHP实现验证码校验功能
2017/11/16 PHP
jquery.alert 弹出式复选框实现代码
2009/06/15 Javascript
js类的静态属性和实例属性的理解
2009/10/01 Javascript
各种页面定时跳转(倒计时跳转)代码总结
2013/10/24 Javascript
jquery获取复选框被选中的值
2014/04/10 Javascript
基于jQuery 实现bootstrapValidator下的全局验证
2015/12/07 Javascript
JavaScript数组方法大全(推荐)
2016/07/05 Javascript
jquery常用的12个小功能
2016/07/22 Javascript
AngularJS 单元测试(二)详解
2016/09/21 Javascript
JavaScript无缝滚动效果的实例代码
2017/03/27 Javascript
vue.js实现价格格式化的方法
2017/05/23 Javascript
js canvas实现适用于移动端的百分比仪表盘dashboard
2017/07/18 Javascript
基于Jquery Ajax type的4种类型(详解)
2017/08/02 jQuery
微信小程序实现的自定义分享功能示例
2019/02/12 Javascript
深入探索VueJS Scoped CSS 实现原理
2019/09/23 Javascript
JavaScript实现背景自动切换小案例
2019/09/27 Javascript
vue-cli设置css不生效的解决方法
2020/02/07 Javascript
Node.js中的异步生成器与异步迭代详解
2021/01/31 Javascript
[55:45]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.24
2019/09/10 DOTA
跟老齐学Python之list和str比较
2014/09/20 Python
Python的Flask框架中实现简单的登录功能的教程
2015/04/20 Python
对python中使用requests模块参数编码的不同处理方法
2018/05/18 Python
详解Python3的TFTP文件传输
2018/06/26 Python
Python中print和return的作用及区别解析
2019/05/05 Python
Python 实现遥感影像波段组合的示例代码
2019/08/04 Python
python对数组进行排序,并输出排序后对应的索引值方式
2020/02/28 Python
python程序如何进行保存
2020/07/03 Python
CSS3弹性盒模型flex box快速入门心得(必看篇)
2016/05/24 HTML / CSS
使用HTML5进行SVG矢量图形绘制的入门教程
2016/02/19 HTML / CSS
舞蹈专业大学生职业规划范文
2014/03/12 职场文书
班子四风对照检查材料
2014/08/21 职场文书
商场父亲节活动方案
2014/08/27 职场文书
《和时间赛跑》读后感3篇
2019/12/16 职场文书
golang interface判断为空nil的实现代码
2021/04/24 Golang