Python模拟登录QTCN(从最简单的开始)
来源:互联网 发布:婚礼倒计时软件 编辑:程序博客网 时间:2024/04/28 14:01
源代码直接上代码,这个是最简单的登录不需要验证码不需要加密,先用wireshark抓包获取post信息,然后组包进行登录。因为之前一直用Qt所以选择这个网站练练手,纯粹好玩。
# coding:utf-8from bs4 import BeautifulSoupimport requests"""Python模拟登陆QTCN。www.qtcn.org"""# 设置登录urllogin_url = "http://www.qtcn.org/bbs/login.php?"# 创建登录类class Login(object): # 初始化 def __init__(self): # 用户名密码 self.username = '' self.password = '' # 验证码 # self.rode = '' # 用户代理模拟浏览器 self.user_agent = "Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0" # session保存cookies self.session = requests.Session() headers = {'User-Agent': self.user_agent, 'Host': 'www.qtcn.org', 'Referer': 'http://www.qtcn.org/bbs/login.php', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Content-Type': 'application/x-www-form-urlencoded', 'Upgrade-Insecure-Requests': '1' } self.session.headers.update(headers) return def set_login_info(self, user_name, user_password): """设置登录用户信息""" self.username = user_name self.password = user_password def login(self): """"模拟登录""" # wireshark抓取的浏览器登录数据 login_data = {'jumpurl': 'http://www.qtcn.org/bbs/i.php', 'pwuser': self.username, 'pwpwd': self.password, 'step': 2, 'lgt': 0} # 需要给Post数据编码 # login_data = urllib.urlencode(values) # 登录 response = self.session.post(login_url, data=login_data) # print response.content # 通过BeautifulSoup获取网页内容 soup = BeautifulSoup(response.content, 'lxml') # 获取网页的content data = soup.find_all(class_='f14 mb10') if data: print u'模拟登录成功!', data else: print u'模拟登录失败!' def skip(self, skip_url): # 模拟登录成功后,跳转网页 # ---------------------------- # 传递跳转网页的url headers = {'User-Agent': self.user_agent, 'Host': 'www.qtcn.org', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'} self.session.headers.update(headers) # 跳转 response = self.session.get(skip_url) # print response.content soup = BeautifulSoup(response.content, 'lxml') # 获取跳转后网页的title print soup.title.stringif __name__ == "__main__": user_login = Login() username = '************' password = '************' user_login.set_login_info(username.decode('utf8').encode('gb2312'), password) # 执行模拟登录方法 user_login.login() # 执行模拟登录成功后网页跳转方法 user_login.skip(skip_url='http://www.qtcn.org/bbs/i.php')
阅读全文
1 0
- Python模拟登录QTCN(从最简单的开始)
- 从最简单开始的正则学习
- Python 网络爬虫--简单的模拟登录
- 通过scrapy,从模拟登录开始爬取知乎的问答数据
- 复习java:从最简单的小程序开始
- 学习O/RM,从最简单的例子开始...之一
- 最简单的内核模块编程 -- 一切从这里开始
- MINI2440 先从最简单的 LED 及 按键 开始!
- 从最简单的开始学习JAVA【HelloWorld】...
- jqeury练习手写从最简单的开始
- 从最简单的例子开始学习网站设计
- 从最简单的源代码开始,切勿眼高手低---(第一波)
- 从最简单的开始---配置jdk环境变量
- Spring Boot(1),从最简单的开始
- MySQL优化-----从最简单的语句优化开始
- c语言入门编程 从最简单的开始
- apk破解(一)从最简单的判断开始
- 学习SpringMVC——从最简单的开始
- 在TextView中左侧加入图片
- django链接数据库报错Error loading MySQLdb module:No module named MySQLdb
- ios 协议的使用
- #####好好好#####特征离散化方法综述
- 数据结构学习总结
- Python模拟登录QTCN(从最简单的开始)
- windows远程桌面故障
- 统计字符串中字符个数需求
- 三子棋游戏
- Ajax请求跨域问题, 获取不到返回数据
- R语言-使用rvest收集狗熊会基础案例
- 数据结构课程总结
- Redis常见API
- java——乐观锁和悲观锁