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模拟百度登录并实现贴吧自动签到相关推荐

  1. C#模拟百度登录并到指定网站评论回帖(一)

    核心信息: 请求网址:  https://passport.baidu.com/v2/api/?login 请求方法:  POST 状态码:  HTTP/1.1 200 OK 请求头  //用户代理  ...

  2. C#模拟百度登录并到指定网站评论回帖(三)

    上次说到怎么获取BAIDUID,这个相信很多人都能够拿到就不多说了,今天一连说两个,获取token和raskey 2.利用以上获得的cookie直接访问页面 https://passport.baid ...

  3. Python requests 自动登录某财BBS,自动签到打卡领铜钱,最后再配个plist,每天自动执行

    某财的用户应该都知道这个网站,在"签到有礼"版块,每天会有一贴,用帖子中给出的关键字回帖,得铜钱,据说铜钱可以换现金,还可以换书. 真好,裸辞在家的失业人员最需要这个-每天领之. ...

  4. python模拟百度搜索点击链接_用 Python 获取百度搜索结果链接

    前言 近期有许多项目需要这个功能,由于Python实现起来比较简单就这么做了,代码贴下来觉得好点个赞吧~ 代码 # coding: utf-8 import os import time import ...

  5. python3.0实例_python3.0 模拟用户登录,三次错误锁定的实例

    python用户登录三次锁定怎么修改 1.normal_user是存放用户id及密码的文件 2.lock_file是存放被锁定的用户id的文档,默认为空. 3.程序会对normal_user里的合法用 ...

  6. 使用selenuim模拟动态登录百度

    要使用selenuim模拟动态动态登录百度,我们的电脑要下载webdriver自动Microsoft Edge,大家可以下载Chromedriver或是Edgdriver.我这里使用的是Edg. 1. ...

  7. python123练习题文库_python模拟登录百度文库后如何点击马上签到

    这是登录的代码: #-*- coding: UTF-8 -*- import HTMLParser import urlparse import urllib import urllib2 impor ...

  8. python 通过title判断_利用Python模拟GitHub登录

    点击关注,我们共同每天进步一点点! 最近学习了Fiddler抓包工具的简单使用,通过抓包,我们可以抓取到HTTP请求,并对其进行分析.现在我准备尝试着结合Python来模拟GitHub登录. Fidd ...

  9. github的python代码怎么跑_如何利用Python模拟GitHub登录详解

    前言 最近学习了Fiddler抓包工具的简单使用,通过抓包,我们可以抓取到HTTP请求,并对其进行分析.现在我准备尝试着结合Python来模拟GitHub登录. Fiddler抓包分析 首先,我们想要 ...

最新文章

  1. Matlab编程与数据类型 -- 多分支条件选择语句if/elseif/…/else/end
  2. DOS命令下Javac命令不能执行原因
  3. Nginx 源码分析-- 模块module 解析执行 nginx.conf 配置文件流程分析 一
  4. emr系统 php,完整电子病历系统c#源码
  5. Spring AOP之通知类别执行顺序
  6. matlab如何制作莫兰散点图,求大神指点绘制空间内散点图的包络面,,,散点程序如下...
  7. mysql 面试题 总结
  8. 怎么运行java程序_怎么运行java程序?运行java程序的一般步骤?
  9. 126套Unity3D视频教程全集(包含入门、编程、特效、UI、动画、实战等等)
  10. 相邻素数的差最大是多少c语言,怎么证明?相邻两个素数之差的最大值
  11. 【3D音效增强神器】Boom 3D for Mac中文版 v1.2.2
  12. 浅谈大小端(Endian)与位域
  13. 机器学习数据分析极简思路及sklearn算法小试
  14. 斯皮尔曼等级相关系数 matlab,斯皮尔曼等级相关(matlab专题)
  15. LeetCode-2206. 将数组划分成相等数对_Python
  16. 群狼调研开展景区旅游服务质量暨游客满意度调查
  17. Java基础语法96-Java91011新特性
  18. windows安装Apache,注册服务出现“(OS 5)拒绝访问。 : AH00369: Failed to open the WinNT service manager...错误
  19. maven和springboot
  20. SEER区块浏览器开发指南

热门文章

  1. 万字长文助你上手软件领域驱动设计 DDD
  2. FFMPEG结构体分析之AVCodec
  3. DNS 与BIND(第五版)
  4. 申请Let's Encrypt的证书
  5. SpringMVC Spring Mybatis Druid SpringSession集成例子
  6. Linux 查看某一个进程占用内存情况
  7. java基础---Math工具类
  8. 【Flask】Nginx / Gunicorn入门:部署你的Flask项目
  9. 【PAT甲级 大数运算】1065 A+B and C (64bit) (20 分) Python 全部AC
  10. 数据结构 - 链表 - 面试中常见的链表算法题