Python模拟新浪微博登录

最近实验室的项目,需要一些真实的数据,而我们选择了从新浪微博抓取数据。对于新浪微博来说,只要登录了以后,微博以及关注和被关注等等信息才是可见的,所以要抓取,第一步是要模拟登录。

一开始,我打算按照这里的方法登录weibo.com并获取信息,但是发现新浪微博初始的页面的数据是放在JS中并以json格式存放的,页面加载的时候才渲染到HTML中,于是我解析了JS代码,证明此法可行,但是接下来遇到问题,因为我们打开新浪微博是不会一次性加载的,移到页面低端的时候才会加载一部分,这个很难模拟,虽然可以通过分析ajax数据得到,但是由于GET的参数多达十几个,这需要时间来分析这些参数的含义,这么做很麻烦。于是我想到,可以通过登录手机版的微博:weibo.cn来获取,而手机版的页面几乎没有JS,数据几乎都在HTML中,而且加载剩余的数据是通过分页进行的。

weibo.cn和weibo.com不是使用一种登录机制,下面直接贴出代码,代码的内容并不难,主要是登录的流程。

代码中用到了lxml库来解析HTML。Windows系统可以在这里下载二进制包。

Python模拟新浪微博登录

相关文章:

你感兴趣的文章:

标签云: