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简单检测文本类型的2种方法【基于文件头及cchardet库】
Sep 18 Python
python技能之数据导出excel的实例代码
Aug 11 Python
Python3.6日志Logging模块简单用法示例
Jun 14 Python
使用Python读取二进制文件的实例讲解
Jul 09 Python
django中使用POST方法获取POST数据
Aug 20 Python
解决pycharm启动后总是不停的updating indices...indexing的问题
Nov 27 Python
Python装饰器原理与基本用法分析
Jan 07 Python
keras 解决加载lstm+crf模型出错的问题
Jun 10 Python
keras的ImageDataGenerator和flow()的用法说明
Jul 03 Python
教你如何用python开发一款数字推盘小游戏
Apr 14 Python
python b站视频下载的五种版本
May 27 Python
Python开发简易五子棋小游戏
May 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
BBS(php & mysql)完整版(八)
2006/10/09 PHP
php 数组的指针操作实现代码
2011/02/08 PHP
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
2012/05/16 PHP
phpcms模块开发之swfupload的使用介绍
2013/04/28 PHP
async和DOM Script文件加载比较
2014/07/20 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
PHP中散列密码的安全性分析
2019/07/26 PHP
一行代码实现纯数据json对象的深度克隆实现思路
2013/01/09 Javascript
如何在指定的地方插入html内容和文本内容
2013/12/23 Javascript
js中indexof的用法详细解析
2013/12/24 Javascript
JavaScript实现将数组数据添加到Select下拉框的方法
2015/08/21 Javascript
JS+CSS实现的蓝色table选项卡效果
2015/10/08 Javascript
借助FileReader实现将文件编码为Base64后通过AJAX上传
2015/12/24 Javascript
基于vuejs+webpack的日期选择插件
2020/05/21 Javascript
jQuery Ztree行政地区树状展示(点击加载)
2016/11/09 Javascript
详解Vue方法与事件
2017/03/09 Javascript
vue利用better-scroll实现轮播图与页面滚动详解
2017/10/20 Javascript
vue使用v-for实现hover点击效果
2018/09/29 Javascript
vue中eslintrc.js配置最详细介绍
2018/12/21 Javascript
js绘制一条直线并旋转45度
2020/08/21 Javascript
Python字符串和文件操作常用函数分析
2015/04/08 Python
为Python的web框架编写前端模版的教程
2015/04/30 Python
Python urls.py的三种配置写法实例详解
2017/04/28 Python
python之django母板页面的使用
2018/07/03 Python
Python数据可视化教程之Matplotlib实现各种图表实例
2019/01/13 Python
Python socket模块实现的udp通信功能示例
2019/04/10 Python
Python 实现数据结构中的的栈队列
2019/05/16 Python
解决python 读取 log日志的编码问题
2019/12/24 Python
Python PyQt5运行程序把输出信息展示到GUI图形界面上
2020/04/27 Python
PyCharm 2020.2下配置Anaconda环境的方法步骤
2020/09/23 Python
Docker如何部署Python项目的实现详解
2020/10/26 Python
html5适合移动应用开发的12大特性
2014/03/19 HTML / CSS
联强国际笔试题面试题
2013/07/10 面试题
叙述DBMS对数据控制功能有哪些
2016/06/12 面试题
小学生操行评语大全
2014/04/22 职场文书
浅谈由position属性引申的css进阶讨论
2021/05/25 HTML / CSS