资源简介
实现对正方教务系统成绩的爬取。
实现对正方教务系统成绩的爬取。
代码片段和文件信息
# -*- coding:gb2312 -*-
import urllib urllib2 cookielib
import re os string
from bs4 import BeautifulSoup
# from PIL import Image
import sys
reload(sys)
sys.setdefaultencoding(‘gb2312‘)
baseUrl = ‘http://222.24.19.201/‘
codeUrl = ‘CheckCode.aspx‘
loginUrl = ‘default2.aspx‘
scoreUrl = ‘xscjcx.aspx‘
def downImg(url name):
‘‘‘
下载验证码
:param url:验证码获取接口
:param name: 验证码存储文件名
:return:
‘‘‘
try:
req = urllib2.Request(url)
req = urllib2.urlopen(req)
content = req.read()
file = open(os.getcwd() + ‘/‘ + name ‘w+b‘)
file.write(content)
file.close()
except Exception e:
print ‘Error :‘ e
def setCookie():
‘‘‘
创建cookie
:return:cookie句柄
‘‘‘
cookie = cookielib.LWPCookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
urllib2.install_opener(opener)
opener.open(baseUrl)
return cookie
def login(username password cookie):
‘‘‘
登录教务系统
:param username:用户名
:param password:密码
:param cookie:setcookie的cookie句柄
:return:用户名以及session_id
‘‘‘
request = urllib2.Request(baseUrl)
text = urllib2.urlopen(request).read()
downImg(baseUrl + codeUrl ‘code.png‘)
# image = Image.open(‘code.png‘)
# print image_to_string(image)
code = raw_input(‘请输入验证码:‘)
soup = BeautifulSoup(text ‘html.parser‘)
_VIEWSTATE = soup.find_all(‘input‘)[0].get(‘value‘)
headers = {
‘User-Agent‘ : ‘Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1‘
‘Referer‘ : baseUrl
}
postData = {
‘__VIEWSTATE‘ : _VIEWSTATE
‘txtUserName‘ : username
‘TextBox2‘ : password
‘txtSecretCode‘ : code
‘RadioButtonList1‘ : ‘学生‘
‘Button1‘ : ‘‘
‘lbLanguage‘ : ‘‘
‘hidPdrs‘ : ‘‘
‘hidsc‘ : ‘‘
}
postData = urllib.urlencode(postData)
request = urllib2.Request(baseUrl + loginUrl postData headers)
response = urllib2.urlopen(request)
text = response.read()
soup = BeautifulSoup(text ‘html.parser‘)
if re.search(‘验证码不正确‘ text):
print ‘验证码错误‘
exit(1)
elif re.search(‘‘ text):
result = {}
name = soup.find(id = ‘xhxm‘).string
name = name.decode(‘gb2312‘).encode(‘gb2312‘)
name = string.replace(name ‘同学‘ ‘‘)
result[‘name‘] = name
session_id = cookie._cookies[‘222.24.19.201‘][‘/‘][‘ASP.NET_SessionId‘].value
result[‘session_id‘] = session_id
return result
else:
print ‘登录失败‘
exit(1)
def getScore(username name session_id ddlXN ddlXQ):
- 上一篇:PyQt5初级教程
- 下一篇:python实现三次自然样条插值
相关资源
- 二级考试python试题12套(包括选择题和
- pywin32_python3.6_64位
- python+ selenium教程
- PycURL(Windows7/Win32)Python2.7安装包 P
- 英文原版-Scientific Computing with Python
- 7.图像风格迁移 基于深度学习 pyt
- 基于Python的学生管理系统
- A Byte of Python(简明Python教程)(第
- Python实例174946
- Python 人脸识别
- Python 人事管理系统
- 基于python-flask的个人博客系统
- 计算机视觉应用开发流程
- python 调用sftp断点续传文件
- python socket游戏
- 基于Python爬虫爬取天气预报信息
- python函数编程和讲解
- Python开发的个人博客
- 基于python的三层神经网络模型搭建
- python实现自动操作windows应用
- python人脸识别(opencv)
- python 绘图(方形、线条、圆形)
- python疫情卡UN管控
- python 连连看小游戏源码
- 基于PyQt5的视频播放器设计
- 一个简单的python爬虫
- csv文件行列转换python实现代码
- Python操作Mysql教程手册
- Python Machine Learning Case Studies
- python获取硬件信息
评论
共有 条评论