从上一篇博文到现在,已有一月有余,期间发生了许多事情,庆幸地是博主终于想开了,有的时候,那些无法改变的人或事,就让TA 去吧,不必多多挂怀,趁着还有时间,做些自己喜欢的事情。此前在模拟新浪微博登录:从原理分析到实现这篇博文中讲解了如何登陆新浪微博,虽然模拟登录看似比较复杂,但将其过程理解透彻之后,你会觉得它其实也比较简单。实现了登录,接下来就是新浪数据的爬取。本文是数据爬取的第一部分,以Python实现新浪用户个人信息的爬取,其余篇章将在后续博文中陆续给出。
新浪微博数据的爬取主要有两种方法,当然也可以说博主只知道这两种方法,一种是使用新浪API获取,另一种是结合正则直接爬取页面信息。第一种方法虽然官方封装甚好,给出的数据也比较丰富,但说到底还是限制太多,很多接口只能获取当前登录用户的信息,无法获取好友的信息(你若不信,可以实践一下),所以在爬取数据的过程中干脆放弃了。本文主要介绍第二种方法,即如何结合正则爬取页面信息。
登录微博
首先是登录微博,博主使用的是urllib2(当然你也可以使用requests),说明一下,有关爬取的相关代码,都写在SinaClient这个类中,login方法如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28#使用urllib2模拟登录过程
def login(self, username=None, password=None):
self.status = False #重新将登录状态设置为False
self.logger.info("Start to login...")
#根据用户名和密码给默认参数赋值,并初始化post_data
self.setAccount(username, password)
self.setPostData()
self.enableCookie()
#登录时请求的url
login_url = r'https://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.15)'
headers = self.headers
request = urllib2.Request(login_u