码迷,mamicode.com
首页 > 其他好文 > 详细

模拟登录新浪微博(接上篇)

时间:2015-12-20 19:23:14      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:

模拟登录新浪微博

模拟登录新浪微博

1. 新浪微博登录机制

  • 输入用户名密码
  • 发送给服务器
  • 服务器验证成功
  • 返回Cookies与正常页面

2. 分析需要提交的数据

  • Mobile(用户名)
  • Password(密码)
  • remember(是否保持登录)
  • backURL(登录以后返回的地址)
  • backTitle(登录以后返回的标题)
  • tryCount(尝试次数)
  • vk(一个简单的验证码)
  • submit(登录)
  • action(URL参数)

Requests提交数据的时候关键代码如下:

1.data={"mobile":"XXXXXXX",
2. password:"XXXXXX",
3. ..............,
4. }
5.Html=requests.post(url,data=data)

password是个变量,不是字符串

还是对上次的页面分析,http://weibo.cn/u/1890493665回车之后还是跳转到登录页面。

打开F12 审查元素,Network功能。填入用户名密码登录,得到下面表单内容:
技术分享
password_8596后面的数字是什么?还有backURL会不会改变?vk又是什么?
现在退出重新登录一下。

重新登录的URL:http://login.weibo.cn/login/?ns=1&revalid=2&backURL=http%3A%2F%2Fweibo.cn%2F&backTitle=%CE%A2%B2%A9&vt=4,记录一下
源代码查找一下
技术分享
技术分享
技术分享
发现,虽然password_后面的数字,backURL,vk每次登录都会变化,但是其值在源代码是有体现的
另外注意
技术分享
action后面的字符串也是要加入我们后面写的代码中的

登陆一下,POST的URL为:
http://login.weibo.cn/login/?rand=245133002&backURL=http%3A%2F%2Fweibo.cn%2F&backTitle=%E5%BE%AE%E5%8D%9A&vt=4&revalid=2&ns=1

发现http://login.weibo.cn/login/后面的参数就是刚才action的参数
新的表单数据变化跟刚才审查元素查找的一样
技术分享

首先把参数提取出来

1.# -*- coding: UTF-8 -*-
2.import requests
3.from lxml import etree
4.
5.url=‘http://weibo.cn/u/1890493665
6.url_login=‘http://login.weibo.cn/login/‘
7.
8.html=requests.get(url).content
9.selector=etree.HTML(html)
10.password=selector.xpath(‘//input[@type="password"]/@name‘)[0]
11.vk=selector.xpath(‘//input[@name="vk"]/@value‘)[0]
12.action=selector.xpath(‘//form[@method="post"]/@action‘)[0]
13.print action
14.print password
15.print vk

运行结果:

1.[KANO@kelvin 桌面]$ python spider_login.py 
2.?rand=310966637&backURL=http%3A%2F%2Fweibo.cn%2Fu%2F1890493665&backTitle=%E5%BE%AE%E5%8D%9A&vt=1&revalid=2&ns=1
3.password_4955
4.4955_45f6_1946108923

提取成功

下面进行模拟登录

1.# -*- coding: UTF-8 -*-
2.
3.import requests
4.from lxml import etree
5.
6.url=‘http://weibo.cn/u/1890493665‘
7.url_login=‘http://login.weibo.cn/login/‘
8.
9.html=requests.get(url).content
10.selector=etree.HTML(html)
11.password=selector.xpath(‘//input[@type="password"]/@name‘)[0]
12.vk=selector.xpath(‘//input[@name="vk"]/@value‘)[0]
13.action=selector.xpath(‘//form[@method="post"]/@action‘)[0]
14.print action
15.print password
16.print vk
17.
18.new_url=url_login+action
19.data={
20. ‘mobile‘:‘125439083@qq.com‘,
21. password:‘XXXXXXXXXXXX‘,
22. ‘remember‘:‘on‘,
23. ‘backURL‘:‘http://weibo.cn/u/1890493665‘,
24. ‘backTitle‘:u‘微博‘ ,
25. ‘tryCount‘:‘‘,
26. ‘vk‘:vk,
27. ‘submit‘: u‘登录‘
28.}
29.
30.newhtml=requests.post(new_url,data=data).content
31.new_selector=etree.HTML(newhtml)
32.#print newhtml.content
33.content=new_selector.xpath(‘//span[@class="ctt"]‘)
34.for each in content:
35. text=each.xpath(‘string(.)‘)
36. b=1
37. print text

运行一下,

1.[KANO@kelvin 桌面]$ python spider_login.py 
2.?rand=344620797&backURL=http%3A%2F%2Fweibo.cn%2Fu%2F1890493665&backTitle=%E5%BE%AE%E5%8D%9A&vt=1&revalid=2&ns=1
3.password_5695
4.5695_d14f_2020110549
5.spring0315 女/北京 加关注
6.做一个快乐、阳光的女汉子~~
7.外国一个姑娘讲述她在购物时经历的一件事 ,听哭了。“你永远不知道别人经历了什么,人生有时候很艰难,尊重别人也是尊重自己”[悲伤]http://t.cn/R4hPlJR
8.[礼物]这个双11极客学院最惠玩儿,促销来得最直接![强]VIP不止买一送一哦,11.11当天还送小米插线板!我已参加,你呢?大促仅限3天,错过不要怪我咯~[微笑] http://t.cn/RUxzrfS
9.最近油管上超火的Tez Cadey - Seve Mongolian Guys舞步分解,好酷好想学!http://t.cn/RyXJF5P
10.如何将一间39平米的公寓改造为集八间独立功能的房间于一身?简直吊炸天!http://t.cn/RykoB1r
11.【转发赠书】#每当我找到生命的意义,它就又变了#这不是一本书,而是一个哲学摘抄本。字迹潦草或抄写工整,如何生活的问题在其中活蹦乱跳。从伊壁鸠鲁到尼采,从叔本华到萨特,《纽约时报》超级畅销书作家丹尼尔·克莱恩用39条哲学金句揭示生命意义。转发并关注@十点读书会,送15本,10.14截止。
12.【转发赠书】很多人在二三十岁就死了,只不过八十岁才埋葬。《别让我们在二三十岁就死去》无数台湾学生酣畅点赞的【人渣文本】.不管你是渣是霸,这本由【最具炫酷态度的台湾老师】周伟航所著,#高含量 智识与尊重#的人生热血使用指南送给还年轻着的你.转发并关注@十点读书会,15本随机送,10.12日晚截止.
13.9个做人的硬道理[群体围观]】①只有小聪明永远无法超人一等; ②多点看问题,就不会有死路;③绝不说不该说的话;④用心做可能改变一生的事; ⑤想尽一切办法不与上司磕绊;⑥培养优良个性即对自己负责任;⑦为人坦诚但不能不分对象;⑧总与人较劲,等于给自己留后患;⑨做大自己,低头走稳每一步。
14.这句话很有意思:“如果我们感情变了怎么办?”“分手,我重新追你。”[嘻嘻]
15.要劵 [嘻嘻]@一米鲜
16.#发现新鲜#幸福其实很简单:有人爱; 有事做;有所期待。今天,你幸福吗?http://t.cn/Ry4Deiq

这就完成了模拟登录新浪微博~

模拟登录新浪微博(接上篇)

标签:

原文地址:http://www.cnblogs.com/XBlack/p/5061416.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!