导航:首页 > 编程语言 > python模拟登录知道明文密码

python模拟登录知道明文密码

发布时间:2022-09-05 21:11:14

python爬虫模拟登录是什么意思

有些网站需要登录后才能爬取所需要的信息,此时可以设计爬虫进行模拟登录,原理是利用浏览器cookie。

一、浏览器访问服务器的过程:
(1)浏览器(客户端)向Web服务器发出一个HTTP请求(Http request);
(2)Web服务器收到请求,发回响应信息(Http Response);
(3)浏览器解析内容呈现给用户。

二、利用Fiddler查看浏览器行为信息:

Http请求消息:

(1)起始行:包括请求方法、请求的资源、HTTP协议的版本号

这里GET请求没有消息主体,因此消息头后的空白行中没有其他数据。

(2)消息头:包含各种属性

(3)消息头结束后的空白行

(4)可选的消息体:包含数据

Http响应消息:

(1)起始行:包括HTTP协议版本,http状态码和状态

(2)消息头:包含各种属性

(3)消息体:包含数据


可以发现,信息里不仅有帐号(email)和密码(password),其实还有_xsrf(具体作用往后看)和remember_me(登录界面的“记住我”)两个值。

那么,在python爬虫中将这些信息同样发送,就可以模拟登录。

在发送的信息里出现了一个项:_xsrf,值为

这个项其实是在访问知乎登录网页https://www.hu.com/#signin时,网页发送过来的信息,在浏览器源码中可见:

所以需要先从登录网址https://www.hu.com/#signin获取这个_xsrf的值,

并连同帐号、密码等信息再POST到真正接收请求的http://www.hu.com/login/email网址。

(2)获取_xsrf的值:
爬取登录网址https://www.hu.com/#signin,从内容中获取_xsrf的值。
正则表达式。

(3)发送请求:
xsrf = 获取的_xsrf的值
data = {"email":"xxx","password":"xxx","_xsrf":xsrf}
login = s.post(loginURL, data = data, headers = headers)
loginURL:是真正POST到的网址,不一定等同于登录页面的网址;

(4)爬取登录后的网页:
response = s.get(getURL, cookies = login.cookies, headers = headers)
getURL:要爬取的登陆后的网页;
login.cookies:登陆时获取的cookie信息,存储在login中。

(5)输出内容:
print response.content

五、具体代码:

[python]view plain

❷ 如何用python模拟登录一个网站

首先你要清楚整个登录过程,浏览器按F12,查看网络,看看浏览器发生了什么请求,收到了什么回复。
然后用用urllib或requests库发送request就行了。
关于要不要验证码,肯定有那个请求,你没有看到吧?
如果要就会请求验证码,在request里面发送就好了。

❸ 如何使用Python模拟帐号登录和帐号注册

用字典比用list 好些
list_user={}
cmd=raw_input('输入命令 1 注册 2登录 3 退出:')
##print 'cmd:',cmd,cmd <>3,type(cmd)
cmd = int(cmd)
while (cmd <>3):

if cmd==1:

while True:
l = raw_input('输入注册账号和密码 用空格分开:')

user=l.split(' ')[0]
passw = l.split(' ')[0]
if list_user.has_key(user):
print u'帐号 %s 已经存在 ,重新输入'%(user)

else:
list_user[user]=passw
print u'帐号 %s 注册成功'%(user)
break

elif cmd ==2:
while True:
l = raw_input('输入登录账号和密码 用空格分开:')
user=l.split(' ')[0]
passw = l.split(' ')[0]
if list_user.has_key(user) and list_user[user]==passw:
print u'帐号 %s 登录成功'%(user)
break
else:
print u'帐号 %s 登录失败 没有此帐号或者帐号密码不正确,重新输入 '%(user)

else:
print u'命令不正确,重新 输入命令 1 注册 2登录 3 退出:'

cmd=raw_input('重新 输入命令 1 注册 2登录 3 退出:')
cmd = int(cmd)

>>>
输入命令 1 注册 2登录 3 退出:1
输入注册账号和密码 用空格分开:a b
帐号 a 注册成功
重新 输入命令 1 注册 2登录 3 退出:1
输入注册账号和密码 用空格分开:a b
帐号 a 已经存在 ,重新输入
输入注册账号和密码 用空格分开:b c
帐号 b 注册成功
重新 输入命令 1 注册 2登录 3 退出:2
输入登录账号和密码 用空格分开:c d
帐号 c 登录失败 没有此帐号或者帐号密码不正确,重新输入
输入登录账号和密码 用空格分开:a b
帐号 a 登录成功
重新 输入命令 1 注册 2登录 3 退出:3
>>>

❹ python 模拟登陆

import httplib2response, content = httplib2.Http().request( "guji.artx.cn", "GET" header={"cookie":"bdshare_...", "User-Agent":"Mozilla/5.0 (Windows..."}
请求头都以dict形式写在header里就行了。
返回值中,response里主要是状态码,等信息,注意里面的set-cookie字段。
所以除了js无法实现,你完全可以100%模拟浏览器的行为,cookie、ua、referer都可以带上。

请采纳答案,支持我一下。

❺ 怎样用Python设计一个爬虫模拟登陆知乎

#!/usr/bin/envpython3
#-*-coding:utf-8-*-
'''
Required
-requests(必须)
-pillow(可选)
'''
importrequests
try:
importcookielib
except:
importhttp.cookiejarascookielib
importre
importtime
importos.path
try:
fromPILimportImage
except:
pass
#构造Requestheaders
agent='Mozilla/5.0(WindowsNT5.1;rv:33.0)Gecko/20100101Firefox/33.0'
headers={
'User-Agent':agent
}
#使用登录cookie信息
session=requests.session()
session.cookies=cookielib.LWPCookieJar(filename='cookies')
try:
session.cookies.load(ignore_discard=True)
except:
print("Cookie未能加载")
defget_xsrf():
'''_xsrf是一个动态变化的参数'''
index_url='

#获取登录时需要用到的_xsrf
index_page=session.get(index_url,headers=headers)
html=index_page.text
pattern=r'name="_xsrf"value="(.*?)"'
#这里的_xsrf返回的是一个list
_xsrf=re.findall(pattern,html)
return_xsrf[0]
#获取验证码
defget_captcha():
t=str(int(time.time()*1000))
captcha_url='

r=session.get(captcha_url,headers=headers)
withopen('captcha.jpg','wb')asf:
f.write(r.content)
f.close()
#用pillow的Image显示验证码
#如果没有安装pillow到源代码所在的目录去找到验证码然后手动输入
try:
im=Image.open('captcha.jpg')
im.show()
im.close()
except:
print(u'请到%s目录找到captcha.jpg手动输入'%os.path.abspath('captcha.jpg'))
captcha=input("pleaseinputthecaptcha >")
returncaptcha
defisLogin():
#通过查看用户个人信息来判断是否已经登录
url="

login_code=session.get(url,allow_redirects=False).status_code
ifint(x=login_code)==200:
returnTrue
else:
returnFalse
deflogin(secret,account):
#通过输入的用户名判断是否是手机号
ifre.match(r"^1d{10}$",account):
print("手机号登录 ")
post_url='

postdata={
'_xsrf':get_xsrf(),
'password':secret,
'remember_me':'true',
'phone_num':account,
}
else:
print("邮箱登录 ")
post_url='

postdata={
'_xsrf':get_xsrf(),
'password':secret,
'remember_me':'true',
'email':account,
}
try:
#不需要验证码直接登录成功
login_page=session.post(post_url,data=postdata,headers=headers)
login_code=login_page.text
print(login_page.status)
print(login_code)
except:
#需要输入验证码后才能登录成功
postdata["captcha"]=get_captcha()
login_page=session.post(post_url,data=postdata,headers=headers)
login_code=eval(login_page.text)
print(login_code['msg'])
session.cookies.save()
try:
input=raw_input
except:
pass
if__name__=='__main__':
ifisLogin():
print('您已经登录')
else:
account=input('请输入你的用户名 >')
secret=input("请输入你的密码 >")
login(secret,account)

❻ python怎么模拟登陆含有验证码的网站

爬取网站时经常会遇到需要登录的问题,这是就需要用到模拟登录的相关方法。Python提供了强大的url库,想做到这个并不难。这里以登录学校教务系统为例,做一个简单的例子。
首先得明白cookie的作用,cookie是某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据。因此我们需要用Cookielib模块来保持网站的cookie。
这个是要登陆的地址 http://202.115.80.153/ 和验证码地址 http://202.115.80.153/CheckCode.aspx
可以发现这个验证码是动态更新的每次打开都不一样,一般这种验证码和cookie是同步的。其次想识别验证码肯定是吃力不讨好的事,因此我们的思路是首先访问验证码页面,保存验证码、获取cookie用于登录,然后再直接向登录地址post数据。

❼ 怎么python 模拟网站登录、注册

将注册名和密码存到字典中,下次登陆时就可以判断是否对应

❽ 怎样用Python设计一个爬虫模拟登陆知乎

两种方法:
1.带cookielib和urllib2
import urllib2
import urllib
import cookielib
def login():
email = raw_input("请输入用户名:")
pwd = raw_input("请输入密码:") data={"email":email,"password":pwd}
post_data=urllib.urlencode(data) cj=cookielib.CookieJar()
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))headers
={"User-agent":"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1"}website =
raw_input('请输入网址:')req=urllib2.Request(website,post_data,headers)content=opener.open(req)print
content.read()
2.使用selenium
import selenium import webdriver
browser=webdriver.Firefox()
browser.get("Url")
browser.find_element_by_id(" ").sendkey("username")
browser.find_element_by_id(" ").sendkey("pass")
browser.find_element_by_id(" ").click()
其实我这个最简单了,用的python3,requests, 只需要验证一次,就会保存cookies,下次登录使用cookies登录。
第一步、打开首页获取_xref值,验证图片 第二步、输入账号密码 第三步、看是否需要验证、要则下载验证码图片,手动输入
第四步、判断是否登录成功、登录成功后获取页面值。

❾ python模拟用户登录系统,如何两个用户输入各自的密码才能登入

users = {'root': ['123', False], 'westos': ['456', False]}

while True:

if all([x[1] for x in users.values()]):

print('two users login successfully')

break

user = input('input user name: ')

if not users.get(user):

print('unexist user')

continue

else:

for i in range(3):

pw = input('input password: ')

if users[user][0] == pw:

print(f'user `{user}` login successfully')

users[user][1] = True

break

用一个字典存储username,pw以及登录状态. 10行判断是否两个人登录状态都为True,如果是,则打印并退出while. 否则13行输入username,如果name不存在,while continue; 如果存在, 进入else,输入密码,密码对则打印并修改状态.超过3次退出for进入while.

阅读全文

与python模拟登录知道明文密码相关的资料

热点内容
军营训练不听教官的命令 浏览:258
v开头的音乐播放器是什么APP 浏览:117
单片机是怎么做出来的 浏览:315
博图怎么作为opc服务器 浏览:100
编译做题软件 浏览:293
桥梁检测pdf 浏览:685
化解压力的一种方法 浏览:680
路由器和DSN服务器有什么区别 浏览:547
android伸缩控件 浏览:851
androidm3u8缓存 浏览:234
imphp开源知乎 浏览:708
清除网络通配符dos命令 浏览:837
鸿蒙系统怎么快速换回安卓 浏览:712
pdf绿色虚拟打印机 浏览:213
androidtab框架 浏览:148
java转php的时间戳 浏览:640
编译libstdc依赖 浏览:659
清算法人与原法人的区别 浏览:411
家庭装修下载什么app软件 浏览:576
美食博主用什么app拍视频 浏览:817