利用python采集分析人人网社交网络数据

本文介绍了如何使用Python的mechanize库自动化登录人人网,并结合re和BeautifulSoup库提取好友数据。通过好友ID获取好友的好友,遵循六度分割理论,实现了社交网络数据的深度采集。最后,提到了在R中对采集的数据进行分析和清洗的后续步骤。
摘要由CSDN通过智能技术生成

先做一下小测试,看看人人网首页是哪个form提交数据,提交数据的域有哪些

<span style="font-size:18px;">import mechanize
br=mechanize.Browser()
br.open('http://www.renren.com')
for form in br.forms():
    print form</span>
打印结果为:
<span style="font-size:18px;"><POST http://www.renren.com/PLogin.do application/x-www-form-urlencoded
  <TextControl(email=)>
  <PasswordControl(password=)>
  <CheckboxControl(autoLogin=[true])>
  <TextControl(icode=)>
  <HiddenControl(origURL=http://www.renren.com/home) (readonly)>
  <HiddenControl(domain=renren.com) (readonly)>
  <HiddenControl(key_id=1) (readonly)>
  <HiddenControl(captcha_type=web_login) (readonly)>
  <SubmitControl(<None>=登录) (readonly)>></span>
看起来是第一个form在提交数据,数据域为email和password
<span style="font-size:18px;">import mechanize
br=mechanize.Browser()
br.open('http://www.renren.com')
br.select_form(nr=0)
br['email']='email'#登陆账号,通常为邮箱地址
br['password']='password'#登陆密码
r=br.submit()
print br.title()</span>

可以看到打印出来的title为“人人网-XXX“,XXX为你在人人网的注册名,从而证明登录成功。
当然如果熟悉基础包,使用如下方法也可以达到登陆人人网的目的

<span style="font-size:18px;">#encoding:utf-8
import cookielib
import urllib2
import urllib
cj=cookielib.LWPCookieJar()
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
url='http://www.renren.com/PLogin.do'
parms={'email':'xxx','password':'xxx'}
parm=urllib.urlencode(parms)
req=urllib2.Request(url,parm)
response=opener.open(req)
print response.geturl()#查看登陆信息,验证登陆成功
print response.info()</span>

正式动工,利用mechanize实现自动化登陆与网页内容下载,re或BeautifulSoup实现数据提取,源代码:

<span style="font-size:18px;">#encoding:utf-8
'''
Created on 2015年1月21日
@author: 
'''
import mechanize
import re
import time
from bs4 import BeautifulSoup
#初始化一个浏览器对象
def initBrowser():
    #Browser
    br = mechanize.Brow
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值