不用python 微博sdk, 使用python裸体登录微博, 然后发一条微博, 再退出微博

微博python sdk, 好用, 但是, 需要你申请新浪的app secret key, 不知道为啥, 新浪的应用开发, 老让人觉得迷糊, 不知道改选哪种类型好. 我的需求就是简单, 好用, 新浪app还是有点麻烦. 这不, 网上到处寻觅, 终于找到了一个好的裸体登录微博的python脚本.

地址是: http://blog.csdn.net/monsion/article/details/8656690 新浪微博模拟登录(Python+RSA加密算法)附源代码

注意, 作者上面一篇才是最新的


这里的 http://blog.csdn.net/monsion/article/details/7981366 这一篇是旧的, 而且有点问题, 主要是上半部分, 已经更新到上面的那个url里了.


我试了作者的代码, 真的可以登录上新浪微博.


不过无聊从登录成功开始! 登录了之后干点啥呢?

于是, 继续折腾呗.


登录了之后, 需要干啥?

1. 获取自己的首页的微博? 就是抓取自己微博首页的那些微博.

作者给了答案, 就是上面的第二个连接, 就是那个旧的, 你需要的是下面(说起下面, 好像有点猥琐)部分


2. 发一条微博

这是我要说的

发微博很简单, 请求url = url = 'http://weibo.com/aj/mblog/add?_wv=5&__rnd='+时间戳

post data =  {'text':text,
                'pic_id':'',
                'rank':0,
                'rankid':'',
                '_surl':'',
                'hottopicid':'',
                'location':'home',
                'module':'stissue',
                '_t':0,
        }

这里, 你只需要注意填写 text 部分即可, 就是你的140个字的微博内容, 注意使用utf-8编码.

http请求的headers需要修改一下, 增加一个referer

headers = {'Referer':'http://weibo.com/%(username)s?wvr=5&wvr=5&lf=reg' % {'username': self.username}}


self.username 请自行设置

post完毕后, 就是一堆

{"code":"100000","msg":"","data":{"html":"\t\t\t\t\t                            \t\t\n\t<div  tbinfo=\

这种返回码, 如果没返回, 肯定微博没有发送成功


3.退出微博

直接发http get 请求 url = 'http://weibo.com/logout.php?backurl=%2F' 即可

具体代码就不啰嗦了. 把login中的代码, 复制, 粘贴, 照样子填写对应的url, data, 新建 Request , urlopen(url)就可以了


确实需要代码的, 请回复, 并留下你的email.


参考资料:

http://www.cnblogs.com/mouse-coder/archive/2013/03/03/2941265.html 模拟新浪微博登录(Python+RSA加密算法)

http://www.douban.com/note/201767245/     马孔多的日记 模拟登录新浪微博(Python)

http://hi.baidu.com/enmzqbeadvfhiye/item/4018b4e7775cd3edfa42bad3   新浪微博登录rsa加密方法


--------------

补记:我虽然让各位留下邮箱,但是我一个人都没有发送代码给他。

所以, 我觉得以后我不会再干这种傻事情了, 你们也不要再留邮箱了。

我另外创建了一个“糊糊作品交流”的QQ群,你们到群里来下载和交流我的原创作品吧。群号码247228519,欢迎加入。

<think>我们正在使用Python来实时监听ADB Logcat日志。根据引用[1][2][3][5],我们可以编写一个Python脚本,通过subprocess模块启动adb logcat命令,并实时读取其输出流,然后对每一行日志进行监控,匹配到特定关键字时执行相应操作(如打印、触bugreport等)。 步骤: 1. 导入必要的模块:os, re, subprocess。 2. 定义adb命令和需要监控的关键字(正则表达式)。 3. 创建一个类或函数来启动adb logcat子进程,并实时读取其标准输出。 4. 对每一行日志进行正则匹配,如果匹配到关键字,则执行相应操作(如打印信息、运行adb bugreport等)。 5. 处理程序退出(如KeyboardInterrupt)以关闭子进程。 注意:根据引用[1],我们使用`subprocess.Popen`来启动adb logcat命令,并捕获其标准输出流。然后逐行读取并匹配。 下面是一个示例代码:</think>### Python实时监听ADB Logcat日志的实现 要使用Python实时监听ADB Logcat日志,可以通过以下步骤实现: #### 1. 基础实现方案 ```python import subprocess import re # 配置ADB命令和关键字 adb_cmd = "adb logcat -v threadtime" # -v threadtime显示详细时间戳 keyword = r"java\.lang\.NullPointerException" # 要监控的关键字 def monitor_logcat(): """实时监控logcat日志""" process = subprocess.Popen( adb_cmd.split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True # Python 3.7+支持直接返回文本 ) print("开始监听ADB Logcat日志...") try: while True: line = process.stdout.readline() if not line: break # 进程结束 if re.search(keyword, line): print(f"⚠️ 检测到异常: {line.strip()}") # 此处可添加自定义处理逻辑 except KeyboardInterrupt: print("\n监听已停止") finally: process.terminate() if __name__ == "__main__": monitor_logcat() ``` #### 2. 关键功能说明 1. **实时日志捕获** 使用`subprocess.Popen`启动adb logcat进程,通过管道实时获取输出流 2. **关键字过滤** 使用正则表达式匹配关键错误,如空指针异常`java.lang.NullPointerException` 3. **时间戳显示** `-v threadtime`参数确保每条日志包含完整时间戳,格式示例: $$ \text{08-15 14:23:45.123 \quad 1421 \quad 1492 \quad E \quad AndroidRuntime} $$ 4. **自定义处理扩展** 检测到关键字时可触: - 自动保存日志文件 - 送通知告警 - 执行adb bugreport收集完整信息[^1] #### 3. 高级优化方案 ```python class LogcatMonitor: def __init__(self, keywords, callback=None): self.keywords = [re.compile(k) for k in keywords] self.callback = callback or self.default_handler def default_handler(self, line): print(f"🚨 检测到异常: {line.strip()}") # 示例:自动保存日志 with open("error_log.txt", "a") as f: f.write(f"{line}\n") def start(self): with subprocess.Popen( adb_cmd.split(), stdout=subprocess.PIPE, bufsize=1, # 行缓冲 universal_newlines=True ) as process: while True: line = process.stdout.readline() if not line: break for pattern in self.keywords: if pattern.search(line): self.callback(line) # 使用示例 if __name__ == "__main__": monitor = LogcatMonitor( keywords=[r"NullPointerException", r"RuntimeException"], callback=lambda line: os.system("adb bugreport") # 触完整日志收集[^1] ) monitor.start() ``` #### 4. 实际应用场景 1. **崩溃监控** 实时捕获`FATAL EXCEPTION`等关键错误[^2] 2. **性能分析** 监控`ActivityManager`的启动时间日志[^3] 3. **自动化测试** 结合UI操作验证特定日志输出[^4] 4. **自定义事件追踪** 监控应用内特定的日志tag(如`GATEWAY_TIME`[^3]) #### 5. 注意事项 - 确保设备已通过`adb devices`连接 - 需要Android SDK配置正确 - 高频率日志可能需性能优化(如缓冲处理) - 使用`adb logcat -c`可清除旧日志避免干扰 > 通过Python封装adb logcat,可实现灵活的日志监控系统,结合正则过滤和回调机制,满足自动化测试、异常监控等多样化需求[^5]。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值