##一、描述
此文章是Python的一个注册和登陆的Demo,下面的源代码,采用的网站是http://www.itlanbao.com/
##二、代码
# -*- coding: UTF-8 -*-
import requests
import time
import os
from bs4 import BeautifulSoup
try:
import Image
except ImportError:
from PIL import Image
import pytesseract
def initTable(threshold=140):
table = []
for i in range(256):
if i < threshold:
table.append(0)
else:
table.append(1)
return table
# 注册
req = requests.session()
response = req.get("http://www.itlanbao.com/register.aspx")
data = {}
data['email'] = "123456@qq.com"
data['pwds'] = "630203"
data['nickname'] = "呵呵呵我文"
headers = {}
headers['User-Agent'] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
resp = req.post("http://www.itlanbao.com/ajax/register/signinAjax.aspx",data=data,headers=headers)
print resp.content
# 登陆
req = requests.session()
verificationPath = "img/verification.png"
login = req.get("http://www.itlanbao.com/login.aspx")
loginSoup = BeautifulSoup(login.content, "html.parser")
# 下载验证码
imgUrl = "http://www.itlanbao.com" + loginSoup.select("#divright_container")[0].select("img")[0]['src']
downImg = req.get(imgUrl)
if os._exists(verificationPath):
pass
else:
with open(verificationPath, "wb") as f:
f.write(downImg.content)
im = Image.open(verificationPath).convert('L')
binaryImage = im.point(initTable(), '1')
# 获取验证码
verificationCode = pytesseract.image_to_string(binaryImage)
data = {}
data['mail'] = "631993842@qq.com"
data['pwds'] = "630203"
data['code'] = verificationCode.strip().lower()
print data['code']
headers = {}
headers[
'User-Agent'] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
loginResponse = req.post("http://www.itlanbao.com/ajax/validate/userkeyAjax.aspx", data=data, headers=headers)
print loginResponse.content