新浪微博的登陆现在是越来越那个了,以前的模拟浏览器登陆新浪微博貌似也越来不管用了

登陆信息由以前的form变成了现在javascript,javascript的加载居然用了一个javascript的函数加载,真是。。。。。

可是突然发现,新浪微博的加强仅限于微博,其他的新浪产品还是一般的网页

相信大家也知道,只要在一个新浪的产品登陆,然后自然的就可以不用登陆就可以登陆上其他产品了

1:安装python的模拟浏览器module,这里用的是mechanize,自己百度下载安装就好了,这不懂的话没必要继续看下去了(开玩笑,可以评论,我教你^_^)

2:登陆新浪通行证

3:登陆新浪微博

4:在新浪微博中搜索

在最后有我自己实现的python代码:

这里说点其他的:

1:怎么拿到自己浏览器的cookie,我拿chrome浏览器作为例子:

  打开http://login.sina.com.cn/signup/signin.php?entry=sso,按下F12,点network,然后输入账号密码登陆,加载完后点击左边的链接,然后右边的点击headers,找到cookie填到下面代码的对应cookie的位置就好了

2:登陆新浪微博一般是扒数据,微博的搜索框是一个重要来源,不拿发现,中文的搜索中的中文是经过编码的,自己对比一般网页的url编码,不难发现新浪微博的url编码对中文的utf8编码还加了25,自己加上就好了

3:其他的也没什么难的了,

#*-* coding:utf-8 *-*
import mechanize
import cookielib
import urllib
import sys
br = mechanize.Browser() #cookie jar
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)
#加上各种协议
br.set_handle_equiv(True)
br.set_handle_gzip(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False) br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(),max_time=1)
#加上自己浏览器头部,和登陆了通行证的cookie
br.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36'),
('Cookie','在这里把自己的cookie放在这里,很长的一串东西')
] # for f in br.forms():
# print f
# br.select_form(nr=0)
# print br
# br.form['username']='13580491531'
# br.form['password']='buhui1314iliting'
# br.submit()
# br.add_password('http://login.sina.com.cn/signup/signin.php?entry=sso','13580491531','buhui1314iliting')
#登陆新浪通行证
br.open('http://login.sina.com.cn/signup/signin.php?entry=sso') t = br.response().read()
f = open("ht.html","w")
f.write(t)
f.close()
#登陆新浪微博
br.open('http://weibo.com')
t = br.response().read()
f = open("htm.html","w")
f.write(t)
f.close()
#输入查询关键字
tips='请输入查询关键词,按回车键结束:'
# tips = tips.decode('utf-8')
query = raw_input(tips)
#对查询进行url的utf8编码,中文才需要编码,英文不需要
#sys.stdin.encoding表示系统默认的编码
query = urllib.quote(query.decode(sys.stdin.encoding).encode('utf8'))
#新浪微博的查询是在url的utf8编码的基础上在%后加上25
query = query.replace('%','%25')
#print query
br.open('http://s.weibo.com/weibo/'+query)
print br.response().geturl()
t = br.response().read()
f = open("html.html","w")
f.write(t)
f.close()

python变现实现新浪微博登陆的更多相关文章

  1. 新浪微博登陆以及发送微博(附python源码)

    原文链接(本人):https://blog.csdn.net/A5878989/article/details/76275855 说明 本文主要记录分析新浪微博登陆以及发送文字和图片微博的详细过程 分 ...

  2. [Javascript] 爬虫 模拟新浪微博登陆

     概述: 由于业务需要,要编写爬虫代码去爬去新浪微博用户的信息. 虽然在网上能找到不少信息,但由于新浪微博改版,其登陆机制进行了修改,故很多老的文章就不适合用了. 经过一番摸索,成功模拟新浪微博的登陆 ...

  3. python抓取新浪微博评论并分析

    1,实现效果 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb2xhbnphbw==/font/5a6L5L2T/fontsize/400/fill ...

  4. python urllib2 模拟网站登陆

    python urllib2 模拟网站登陆 1. 可用浏览器先登陆,然后查看网页源码,分析登录表单 2. 使用python urllib2,cookielib 模拟网页登录 import urllib ...

  5. Java模拟新浪微博登陆抓取数据

    前言:  兄弟们来了来了,最近有人在问如何模拟新浪微博登陆抓取数据,我听后默默地抽了一口老烟,暗暗的对自己说,老汉是时候该你出场了,所以今天有时间就整理整理,浅谈一二. 首先:  要想登陆新浪微博需要 ...

  6. Python实现网站模拟登陆

    一.实验简介 1.1 基本介绍 本实验中我们将通过分析登陆流程并使用 Python 实现模拟登陆到一个实验提供的网站,在实验过程中将学习并实践 Python 的网络编程,Python 实现模拟登陆的方 ...

  7. 使用python的Paramiko模块登陆SSH

    使用python的Paramiko模块登陆SSH paramiko是用Python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接. python的paramiko模块 ...

  8. Python tkinter 实现简单登陆注册 基于B/S三层体系结构,实现用户身份验证

    Python tkinter 实现简单登陆注册 最终效果 开始界面 ​ 注册 登陆 ​ 源码 login.py # encoding=utf-8 from tkinter import * from ...

  9. Redis & Python/Django 简单用户登陆

    一.Redis key相关操作: 1.del key [key..] 删除一个或多个key,如果不存在则忽略 2.keys pattern keys模式匹配,符合glob风格通配符,glob风格的通配 ...

随机推荐

  1. RDL/RDLC批量单据打印

    使用RDL或RDLC进行单据打印时,单张单据打印比较直观简单,无需说明.下面我们来谈一下批量单据打印的实现方法.以下以RDL的ReportBuilder设计环境为例进行讲解,RDLC.VS设计环境同理 ...

  2. asp.net页面中的Console.WriteLine结果如何查看

    其实用Console.WriteLine("xxxxx"),在asp.net Web程序,在输出窗口是不会输出结果的,应该用Debug.WriteLine("xxxxx& ...

  3. pta函数作业

    7-10 设计思路:本题需要判断一个正整数数是否为素数,所谓素数,就是除一和本身外没有其他因数的数.具体判断过程如下:对于一个大于一的整数,从2开始用循环计数i去除此数,若余数不为零,则循环计数i自加 ...

  4. Performanced C++ 经验规则

    http://www.cnblogs.com/ccdev/archive/2012/12/27/2836448.html Performanced C++,意为“高性能C++“编程,是笔者和所在团队多 ...

  5. vsCode怎么为一个前端项目配置ts的运行环境

    vsCode为一个前端项目配置ts的运行环境,ts文件保存的时候自动编译成js文件: 假设此前端项目名称为Web:文件结构如图 1. 在根目录中新建一个“.vscode”文件夹,里面建一个“tasks ...

  6. javascript 数组以及对象的深拷贝

    如果 let arr2 = arr1:  那么只是赋值的引用,改变arr2也会相应的改变arr1: 如果 let arr2 = [].concat(arr1): 如果arr1里面不是引用类型,那么ar ...

  7. SpringBoot2.0

    建立可执行的Jars和Wars bootJar用于构建可执行的Jar: bootWar用于构建可执行的war. application.properties 不启动web服务器 spring.main ...

  8. 【bzoj1977】[BeiJing2010组队]次小生成树 Tree 最小生成树+权值线段树合并

    题目描述 求一张图的严格次小生成树的边权和,保证存在. 输入 第一行包含两个整数N 和M,表示无向图的点数与边数. 接下来 M行,每行 3个数x y z 表示,点 x 和点y之间有一条边,边的权值为z ...

  9. 【bzoj3931】[CQOI2015]网络吞吐量 最短路+最大流

    题目描述 路由是指通过计算机网络把信息从源地址传输到目的地址的活动,也是计算机网络设计中的重点和难点.网络中实现路由转发的硬件设备称为路由器.为了使数据包最快的到达目的地,路由器需要选择最优的路径转发 ...

  10. 洛谷 P1415 拆分数列 解题报告

    拆分数列 题目背景 [为了响应党中央勤节俭.反铺张的精神,题目背景描述故事部分略去^-^] 题目描述 给出一列数字,需要你添加任意多个逗号将其拆成若干个严格递增的数. 如果有多组解,则输出使得最后一个 ...