本文主要是介绍[置顶]定向爬虫 - Python模拟新浪微博登录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
当我们试图从新浪微博抓取数据时,我们会发现网页上提示未登录,无法查看其他用户的信息。模拟登录是定向爬虫制作中一个必须克服的问题,只有这样才能爬取到更多的内容。
实现微博登录的方法有很多,一般我们在模拟登录时首选WAP版。
因为PC版网页源码中包括很多的js代码,提交的内容也更多,不适合机器模拟登录。
我们实现微博登录的大体思路是这样的:
- 用抓包工具把正常登录时要提交的字段都记录下来;
- 模拟提交这些字段;
- 判断是否登录成功;
原理很简单,让我们一步一步来实现吧。
一.抓包利器Fiddler
在电脑和互联网之间的通信是通过不同的数据包收发来实现的。
Fiddler可以从中间对数据进行拦截,拷贝一份数据以后再将数据发送给目的端。(这也是为什么说咖啡馆的公共WIFI不安全的原因)
同类的还有WireShark。为何这儿不用WireShark呢?
Wireshark太过于专业了,它可以实现抓取各种包,抓下来的包也很乱,针对性没Fiddler那么强。
- 下载安装
1.下载地址:http://www.telerik.com/fiddler
2.安装方法:fiddler依赖.Net环境,如果已经有则无需配置,直接点击下一步就行。
- 使用方法
1.启动Fiddler
2.配置Fiddler
点击左上角的“ WinConfig”,找到你使用的浏览器并勾选,点击“Save Changes”
3.使用Fiddler开始抓包
打开浏览器访问WAP版新浪微博网站weibo.cn
Fiddler窗口左侧找到weibo.cn /pub/的数据包,并双击,这时我们就能够在右侧看到抓取到的信息.
找到Cookies字段,这正是我们需要的.
二.Cookies与保持登录
- 关于Cookies
维基百科是这样解释的:
Cookie(复数形态Cookies),中文名称为“小型文本文件”或“小甜饼”,指某些网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。
通俗来说就是服务器端为了确认用户终端的身份而设定的一种加密标识,它是存储在本地终端上的。
当然,随着Cookies技术的发展,Cookies的作用已经不止于用户身份标识。
当登陆一个网站时,网站往往会请求用户输入用户名和密码,并且用户可以勾选“下次自动登录”。
如果勾选了,那么下次访问同一个网站时,用户会发现没输入用户名和密码就已经登录了。
这正是因为前一次登陆时服务器发送了包含登录凭据(用户名+密码的某种加密形式)的Cookie到用户的硬盘上。
第二次登录时,如果该Cookies尚未到期,浏览器会发送该Cookies,服务器验证凭据,于是不必输入用户名和密码就让用户登录了。
三.Cookies模拟登录
下面将介绍使用 Fiddler 获取新浪微博 Cookies,然后使用 Requests
这篇关于[置顶]定向爬虫 - Python模拟新浪微博登录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!