python3贴吧_python3模拟百度登录并实现贴吧自动签到
1.[文件]
baiduclient.py ~ 4KB
下载(176)
'''
Created on 2014-2-20
@author: Vincent
'''
import urllib.parse
import gzip
import json
import re
from http.client import HTTPConnection
from htmlutils import TieBaParser
import httputils as utils
# 请求头
headers = dict()
headers["Connection"] = "keep-alive"
headers["Cache-Control"] = "max-age=0"
headers["Accept"] = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36"
headers["Content-Type"] = "application/x-www-form-urlencoded"
headers["Accept-Encoding"] = "gzip,deflate,sdch"
headers["Accept-Language"] = "zh-CN,zh;q=0.8"
headers["Cookie"] = ""
# cookie
cookies = list()
# 个人信息
userInfo = {}
def login(account, password):
'''登录'''
global cookies
headers["Host"] = "wappass.baidu.com"
body = "username={0}&password={1}&submit=%E7%99%BB%E5%BD%95&quick_user=0&isphone=0&sp_login=waprate&uname_login=&loginmerge=1&vcodestr=&u=http%253A%252F%252Fwap.baidu.com%253Fuid%253D1392873796936_247&skin=default_v2&tpl=&ssid=&from=&uid=1392873796936_247&pu=&tn=&bdcm=3f7d51b436d12f2e83389b504fc2d56285356820&type=&bd_page_type="
body = body.format(account, password)
conn = HTTPConnection("wappass.baidu.com", 80)
conn.request("POST", "/passport/login", body, headers)
resp = conn.getresponse()
cookies += utils.getCookiesFromHeaders(resp.getheaders())
utils.saveCookies(headers, cookies)
# 登录成功会返回302
return True if resp.code == 302 else False
def getTieBaList():
'''获取已关注的贴吧列表'''
conn = HTTPConnection("tieba.baidu.com", 80)
conn.request("GET", "/mo/m?tn=bdFBW&tab=favorite", "", headers)
resp = conn.getresponse()
tieBaParser = TieBaParser()
tieBaParser.feed(resp.read().decode())
tbList = tieBaParser.getTieBaList()
return tbList
def getSignInfo(tieBaName):
'''获取贴吧签到信息'''
queryStr = urllib.parse.urlencode({"kw":tieBaName, "ie":"utf-8", "t":0.571444})
conn = HTTPConnection("tieba.baidu.com", 80)
conn.request("GET", "/sign/loadmonth?" + queryStr, "", headers)
data = gzip.decompress(conn.getresponse().read()).decode("GBK")
signInfo = json.loads(data)
return signInfo
tbsPattern = re.compile('"tbs" value=".{20,35}"')
def signIn(tieBaName):
'''签到'''
# 获取页面中的参数tbs
conn1 = HTTPConnection("tieba.baidu.com", 80)
queryStr1 = urllib.parse.urlencode({"kw": tieBaName})
conn1.request("GET", "/mo/m?" + queryStr1, "", headers)
html = conn1.getresponse().read().decode()
tbs = tbsPattern.search(html).group(0)[13:-1]
# 签到
conn2 = HTTPConnection("tieba.baidu.com", 80)
body = urllib.parse.urlencode({"kw":tieBaName, "tbs":tbs, "ie":"utf-8"})
conn2.request("POST", "/sign/add" , body , headers)
resp2 = conn2.getresponse()
data = json.loads((gzip.decompress(resp2.read())).decode())
return data
def getUserInfo():
'''获取个人信息'''
headers.pop("Host")
conn = HTTPConnection("tieba.baidu.com", 80)
conn.request("GET", "/f/user/json_userinfo", "", headers)
resp = conn.getresponse()
data = gzip.decompress(resp.read()).decode("GBK")
global userInfo
userInfo = json.loads(data)
if __name__ == "__main__":
account = input("请输入帐号:")
password = input("请输入密码:")
ok = login(account, password)
if ok:
getUserInfo()
print(userInfo["data"]["user_name_weak"] + "~~~登录成功", end="\n------\n")
for tb in getTieBaList():
print(tb + "吧:")
signInfo = signIn(tb)
if signInfo["no"] != 0:
print("签到失败!")
print(signInfo["error"])
else:
print("签到成功!")
print("签到天数:" + str(signInfo["data"]["uinfo"]["cout_total_sing_num"]))
print("连续签到天数:" + str(signInfo["data"]["uinfo"]["cont_sign_num"]))
print("------")
else:
print("登录失败")
python3贴吧_python3模拟百度登录并实现贴吧自动签到相关推荐
- C#模拟百度登录并到指定网站评论回帖(一)
核心信息: 请求网址: https://passport.baidu.com/v2/api/?login 请求方法: POST 状态码: HTTP/1.1 200 OK 请求头 //用户代理 ...
- C#模拟百度登录并到指定网站评论回帖(三)
上次说到怎么获取BAIDUID,这个相信很多人都能够拿到就不多说了,今天一连说两个,获取token和raskey 2.利用以上获得的cookie直接访问页面 https://passport.baid ...
- Python requests 自动登录某财BBS,自动签到打卡领铜钱,最后再配个plist,每天自动执行
某财的用户应该都知道这个网站,在"签到有礼"版块,每天会有一贴,用帖子中给出的关键字回帖,得铜钱,据说铜钱可以换现金,还可以换书. 真好,裸辞在家的失业人员最需要这个-每天领之. ...
- python模拟百度搜索点击链接_用 Python 获取百度搜索结果链接
前言 近期有许多项目需要这个功能,由于Python实现起来比较简单就这么做了,代码贴下来觉得好点个赞吧~ 代码 # coding: utf-8 import os import time import ...
- python3.0实例_python3.0 模拟用户登录,三次错误锁定的实例
python用户登录三次锁定怎么修改 1.normal_user是存放用户id及密码的文件 2.lock_file是存放被锁定的用户id的文档,默认为空. 3.程序会对normal_user里的合法用 ...
- 使用selenuim模拟动态登录百度
要使用selenuim模拟动态动态登录百度,我们的电脑要下载webdriver自动Microsoft Edge,大家可以下载Chromedriver或是Edgdriver.我这里使用的是Edg. 1. ...
- python123练习题文库_python模拟登录百度文库后如何点击马上签到
这是登录的代码: #-*- coding: UTF-8 -*- import HTMLParser import urlparse import urllib import urllib2 impor ...
- python 通过title判断_利用Python模拟GitHub登录
点击关注,我们共同每天进步一点点! 最近学习了Fiddler抓包工具的简单使用,通过抓包,我们可以抓取到HTTP请求,并对其进行分析.现在我准备尝试着结合Python来模拟GitHub登录. Fidd ...
- github的python代码怎么跑_如何利用Python模拟GitHub登录详解
前言 最近学习了Fiddler抓包工具的简单使用,通过抓包,我们可以抓取到HTTP请求,并对其进行分析.现在我准备尝试着结合Python来模拟GitHub登录. Fiddler抓包分析 首先,我们想要 ...
最新文章
- Matlab编程与数据类型 -- 多分支条件选择语句if/elseif/…/else/end
- DOS命令下Javac命令不能执行原因
- Nginx 源码分析-- 模块module 解析执行 nginx.conf 配置文件流程分析 一
- emr系统 php,完整电子病历系统c#源码
- Spring AOP之通知类别执行顺序
- matlab如何制作莫兰散点图,求大神指点绘制空间内散点图的包络面,,,散点程序如下...
- mysql 面试题 总结
- 怎么运行java程序_怎么运行java程序?运行java程序的一般步骤?
- 126套Unity3D视频教程全集(包含入门、编程、特效、UI、动画、实战等等)
- 相邻素数的差最大是多少c语言,怎么证明?相邻两个素数之差的最大值
- 【3D音效增强神器】Boom 3D for Mac中文版 v1.2.2
- 浅谈大小端(Endian)与位域
- 机器学习数据分析极简思路及sklearn算法小试
- 斯皮尔曼等级相关系数 matlab,斯皮尔曼等级相关(matlab专题)
- LeetCode-2206. 将数组划分成相等数对_Python
- 群狼调研开展景区旅游服务质量暨游客满意度调查
- Java基础语法96-Java91011新特性
- windows安装Apache,注册服务出现“(OS 5)拒绝访问。 : AH00369: Failed to open the WinNT service manager...错误
- maven和springboot
- SEER区块浏览器开发指南
热门文章
- 万字长文助你上手软件领域驱动设计 DDD
- FFMPEG结构体分析之AVCodec
- DNS 与BIND(第五版)
- 申请Let's Encrypt的证书
- SpringMVC Spring Mybatis Druid SpringSession集成例子
- Linux 查看某一个进程占用内存情况
- java基础---Math工具类
- 【Flask】Nginx / Gunicorn入门:部署你的Flask项目
- 【PAT甲级 大数运算】1065 A+B and C (64bit) (20 分) Python 全部AC
- 数据结构 - 链表 - 面试中常见的链表算法题