附赠人人好友主页爬虫脚本代码

依然声明:写的很烂

不打包了,直接放代码了

import urllib
import urllib2
import cookielib
import sys
from StringIO import StringIO
def login(s):
	xn={}
	xn['email']='asd'
	xn['password']='213'
	cookie=cookielib.CookieJar()
	opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
	urllib2.install_opener(opener)
	zhanghao = urllib.urlencode(xn)
	req=urllib2.Request('http://3g.renren.com/login.do?fx=0&autoLogin=true',zhanghao)
	resp=urllib2.urlopen(req)
	html=urllib2.urlopen(s)
	return html.read()
# coding=utf-8
import urllib
import urllib2
import cookielib
import sys
from time import sleep
from login import *

html=login('http://3g.renren.com/myfriendlist.do')
html=html[html.find('全部'):]
last='123'
total=0
n=0
i=0
while html.find('下一页')>=0:
	html=html[html.find('全部'):html.find('下一页')]
	while html.find('profile.do?h')>=0:
		html=html[html.find('<a href'):]
		html=html[html.find('" '):]
		html=html[html.find('<a href'):]
		temp=html[html.find('"')+1:html.find('">')]
		pro=login(temp)
		sleep(2)
		name=pro[pro.find('网')+6:pro.find('</title')]
		pro=pro[pro.find('>分享<'):]
		num=pro[pro.find('>(')+2:pro.find(')<')]
		num=int(num)
		n=n+1
		print name,num
		f=open('fenxiang.txt','a')
		f.write(name+' '+str(num)+'n')
		f.close()
		total+=num
		html=html[html.find('" '):]
	i+=1
	html=login('http://3g.renren.com/myfriendlist.do?curpage='+str(i))

f=open('fenxiang.txt','a')
f.write('total:'+str(total)+'nnum:'+str(n)+'naverage:'+str(total//n)+'n')
f.close()

 

# coding=utf-8
dic={}
f=open('fenxiang.txt','r')
for eachline in f:
	dic[eachline[:eachline.find(' ')]]=int(eachline[eachline.find(' ')+1:eachline.find('n')])
f2=open('fenxiangsort.txt','w')
dic2= (sorted(dic.iteritems(), key=lambda d:d[1], reverse = True ))
for i in dic2:
	f2.write(i[0]+' '+str(i[1])+'n')

 

 

 

说明:第一个login.py就是根据以前那个机器人的代码改的,只不过函数会返回参数的地址的HTML字符串

第二个就是主程序了,里面相应做修改可以查别的

第三个是排序用的,讲人名跟数量弄成字典按value排序,方法是网上搜的。不过有个问题是有人名字之间有空格(主要是英文名什么的),数量不多我手动去掉的……

import有几个是没用的


已发布

分类

来自

标签:

评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注