全部版块 我的主页
论坛 数据科学与人工智能 人工智能
2486 1
2014-05-19
无聊写的,请大家多多指教,这里有个编码问题,输出不了中文,周末竟玩了,没功夫研究,谁能帮我解答一下最好了
最终想法是输出我的好友关系网,但是现在只是简单的把所有好友的id姓名和访问人气输出了,有空再弄

#-*-coding:utf-8 -*-
import urllib2
import urllib
import cookielib
import BeautifulSoup
from BeautifulSoup import BeautifulSoup
import re
import os

#登录
def login(name,pwd):
    #cookie
    cj = cookielib.LWPCookieJar()
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
    urllib2.install_opener(opener)
    #post参数
    args={'domain':'renren.com','origURL':'http://www.renren.com/SysHome.do',
          'email':name,'password'wd
    }
    req = urllib2.Request('http://www.renren.com/PLogin.do',urllib.urlencode(args))
    response = opener.open(req)
    url = response.geturl()
    print name + ' login success!' + '\n'
    #返回登录后的url
    return url


def get_friend_list():
    #读取人人网好友页面
    page=urllib2.urlopen('http://friend.renren.com/myfriendlistx.do').read()
    #分析页面
    soup = BeautifulSoup(page)
    #找到script标签
    content = soup.findAll('script')
    #正则匹配出好友的id和姓名存进friendId
    friend = str(re.search('friends=\[{.*}\]',str(content[len(content)-1])).group())
    friendId = re.findall('"id".*?),.*?,"name":"(.*?)"',friend)
    #建立好友主页的连接,存进friendUrlList
    friendUrlList=[]
    for person in friendId:
        friendUrlList.append('http://www.renren.com/' + person[0])
    #创建个文件,用于存输出结果
    f = open('C:/Users/Xu_shuai/Desktop/aaa.txt','a')
    #遍历所有的好友
    for i in range(len(friendUrlList)):
        #打开好友主页
        home = urllib2.urlopen(friendUrlList[i]).read()
        #测试一个人用
        #home = urllib2.urlopen('http://www.renren.com/248208276')
        soupHome = BeautifulSoup(home)
        count = soupHome.find('span',attrs={'class':'count'})
        if count is not None:
            #为了对付人人新出的一个什么时间轴的东西
            #正则匹配出好友的人气
            countRes = re.findall('[0-9]+',str(count))[0]
        else:
            count = soupHome.find('div',attrs={'class':'clearfix'})
            countRes = re.findall('[0-9]+',str(count))[1]
        #将好友的Id姓名(编码有问题,输出的是个码,还没搞对啊)和人气输出,并存入文件
        f.write(str(friendId[i]) + '------------' +str(countRes) +'\n')
        print str(friendId[i]) + '------------' +str(countRes) +'\n'
    f.close()

if __name__ == "__main__":
    #参数为用户名和密码
    login('*****','*****')
    get_friend_list()


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-5-21 18:07:06
赞一个!
我最近一直想找这么个小程序,今天碰巧在这里发现了,真是太好了。
请问,你的程序会再更新吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群