python实现自动登录人人网并采集信息的方法
作者:不吃皮蛋 发布时间:2021-07-27 05:44:24
标签:python,登录,人人网,采集
本文实例讲述了python实现自动登录人人网并采集信息的方法。分享给大家供大家参考。具体实现方法如下:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import re
import urllib2
import urllib
import cookielib
class Renren(object):
def __init__(self):
self.name = self.pwd = self.content = self.domain = self.origURL = ''
self.operate = ''#登录进去的操作对象
self.cj = cookielib.LWPCookieJar()
try:
self.cj.revert('./renren.coockie')
except Exception,e:
print e
self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cj))
urllib2.install_opener(self.opener)
def setinfo(self,username,password,domain,origURL):
'''设置用户登录信息'''
self.name = username
self.pwd = password
self.domain = domain
self.origURL = origURL
def login(self):
'''登录人人网'''
params = {
'domain':self.domain,
'origURL':self.origURL,
'email':self.name,
'password':self.pwd}
print 'login.......'
req = urllib2.Request(
'http://www.renren.com/PLogin.do',
urllib.urlencode(params)
)
self.file=urllib2.urlopen(req).read()
newsfeed = open('news.html','w')
try:
newsfeed.write(self.file)
except Exception, e:
newsfeed.close()
self.operate = self.opener.open(req)
print type(self.operate)
print self.operate.geturl()
if self.operate.geturl():
print 'Logged on successfully!'
self.cj.save('./renren.coockie')
self.__viewnewinfo()
else:
print 'Logged on error'
def __viewnewinfo(self):
'''查看好友的更新状态'''
self.__caiinfo()
def __caiinfo(self):
'''采集信息'''
h3patten = re.compile('<article>(.*?)</article>')#匹配范围
apatten = re.compile('<h3.+>(.+)</h3>:')#匹配作者
cpatten = re.compile('</a>(.+)\s')#匹配内容
content = h3patten.findall(self.file)
print len(content)
infocontent = self.operate.readlines()
print type(infocontent)
print 'friend newinfo:'
for i in infocontent:
content = h3patten.findall(i)
if len(content) != 0:
for m in content:
username = apatten.findall(m)
info = cpatten.findall(m)
if len(username) !=0:
print username[0],'说:',info[0]
print '----------------------------------------------'
else:
continue
ren = Renren()
username = 'username'#你的人人网的帐号
password = 'password'#你的人人网的密码
domain = 'www.renren.com'#人人网的地址
origURL = 'http://www.renren.com/home'#人人网登录以后的地址
ren.setinfo(username,password,domain,origURL)
ren.login()
希望本文所述对大家的Python序设计有所帮助。
0
投稿
猜你喜欢
- MaxPooling1D和GlobalMaxPooling1D区别import tensorflow as tffrom tensorflo
- 代码如下# -*- coding = utf-8 -*-# @time:2020/5/28/028 21:00# Author:cyx# @
- 修改MySQL密码:mysqladmin -u root -p password 123456mysqladmin -u用户名 -p旧密码
- 无法打开用户默认数据库,登录失败,这也是SQL Server使用者熟悉的问题之一。在使用企业管理器、查询分析器、各类工具和应用软件的时候,只
- 本文实例为大家分享了Python之给我一面国旗的具体代码,供大家参考,具体内容如下1、“给我一面国旗@微信官方”今天“给我一面国旗@微信官方
- 需求分析背景:1.数据列表页,滚动加载数据;2.多条数据情况下,点击某一条,进入详细页进行编辑(修改,删除)操作;3.保存返回上一页;在上面
- 本文实例讲述了python生成器/yield协程/gevent写简单的图片下载器功能。分享给大家供大家参考,具体如下:1、生成器:'
- 日历功能在个人博客网站及一些任务类网站都有广泛的应用,当然,在一些通用网站的后台也不乏这些日历功能的综合应用,所以,一个结构合理、代码清晰的
- Python中的垃圾回收算法是采用引用计数, 当一个对象的引用计数为0时, Python的垃圾回收机制就会将对象回收a = "la
- 在《javascript设计模式》中对这种方法作了比较详细的描述,实现方法的链式调用,只须让在原型中定义的方法都返回调用这些方法的实例对象的
- vue1.0中 vm.$dispatch 和 vm.$broadcast 被弃用,改用$emit,$onvm.$on( event, cal
- Sometimes we have need to interact with an application,for examp
- 静态页面运行代码框你也许见的多了,而动态asp运行代码框你一定很少见到,看看本文吧!保存为runasp.asp运行。账号密码admin,登陆
- 一大早就被电话吵醒了,云某项目数据库全挂了,启动不了(睡得太死,没听到报警短信),吓得不轻啊!电话中说所有mysql数据库主库都启动不了,但
- 配置指令如下:[opcache]zend_extension=opcache.soopcache.enable_cli=1;共享内存大小,
- 我们知道,任何数据库系统都无法避免崩溃的状况,即使你使用了Clustered,双机热备……仍然无
- 一、简介主流被使用的地理坐标系并不统一,常用的有WGS84、GCJ02(火星坐标系)、BD09(百度坐标系)以及百度地图中保存矢量信息的we
- 在第一部分中,我们主要讲解了一下如何用列表元素来实现柱状图效果。其中需要特别注意的就是相对定位和绝对定位的的使用。在本节中,将来讨论一下使用
- 这篇文章主要介绍了python全局变量引用与修改过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
- 本文实例讲述了Python ORM编程。分享给大家供大家参考,具体如下:ORM编程ORM(object-relational mapping