爬取人人网主要对于登陆而言 基于py3 由于注册问题没有好友
在群里的大佬说爬取人人是最简单的 忽然意识到没有爬过就去看了看
对于人人来说最重要的应该是登陆问题 在此提供两种解决方案
一、基于Fiddler
这个方法比较麻烦还需要去登陆一下 用Fiddler抓包并分析
1.通过Fiddler能很明显的去找到所要传递的信息,由于主要是要找到post请求 而且还要是与登陆有关很快就找到了,隐藏起来的email为自己的账号,而对于rkey则是密码,密码是加密过的,我没有去探究是怎样加密的,加密后的密码每次都不一样,但是不论怎样加密只要获取一次post值 每次都可以使用,对于f中的%3A那些东西其实就是转码后的//,这个没什么问题。
2.还有要说的一点。本方法还用了session,会话维持,我认为如果cookies变化的就无法去访问,因此要定下cookies。
下面附上代码和图片
import requests
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0',
'Referer': 'http://www.renren.com/SysHome.do'
}#经测试不需要加headers照样可以得到网页
url="http://www.renren.com/ajaxLogin/login?1=1&uniqueTimestamp=20181131047143"
data={'email':'xxxxxxx',#用户名
'icode':'',
'origURL':'http://www.renren.com/home',
'domain':'renren.com',
'key_id':'1',
'captcha_type':'web_login',
'password':'2e0ec05f4a8a894d17b6d21a7617222e776660bbf71b3013dfac105eb1000135',#加密后的密码
'rkey':'fd39218a0c45826fc01ac4b9d6362459',#感觉因该是公钥
'f':'http%3A%2F%2Fwww.renren.com%2F969089082',}
session=requests.Session()
session.post (url,headers=headers,data=data)
c=session.get("http://www.renren.com/969089082/profile")#这里是你的个人主页,可以换成任意登陆后的人人网网址
print(c.text)
运行结果中可以找到自己的名字,由此来看登陆成功
二、基于cookies
对于cookies这东西我研究的真的不是很深是根据伊成的视频去模仿的
首先说一下登陆的网址问题
根据开发者工具可以找到这哥http://www.renren.com/PLogin.do这个网址,对于可以看出这是一个表格,传递的数据
就这两个值,一个你的账号,另一个你的密码多余的东西就不多说了直接上代码
import requests
from urllib import request
from urllib import parse
from http import cookiejar
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0',
}
data={"email":"xxxxxxx","password":"xxxxxx"}
url='http://www.renren.com/PLogin.do'
cookie = cookiejar.CookieJar()
# 利用urllib.request库的HTTPCookieProcessor对象来创建cookie处理器,也就CookieHandler
handler=request.HTTPCookieProcessor(cookie)
# 通过CookieHandler创建opener
opener = request.build_opener(handler)
# 此处的open方法打开网页
data=parse.urlencode(data).encode()#对要传输的数据编码
requests=request.Request(url,data=data,headers=headers)
html=opener.open(requests)
# 打印cookie信息
c=opener.open("http://www.renren.com/969089082/profile")#这里的网址可能要改一下,主页不一样
print(c.read().decode("utf8"))
爬取人人网主要对于登陆而言 基于py3 由于注册问题没有好友相关推荐
- requests 爬取人人网信息,难点:验证码
目标:爬取人人网信息,此处只爬一个name 思路: 1.登陆 2.访问大鹏首页,获得到右侧推荐好友的所有url,并保存到数据库,设置状态码为 0,同时获取到大鹏的信息,并保存数据库. 3.从数据库中取 ...
- (55)-- 简单爬取人人网个人首页信息
# 简单爬取人人网个人首页信息 from urllib import requestbase_url = 'http://www.renren.com/964943656' headers = {&q ...
- python爬取文字编程_Python怎么爬取人人网新鲜事
Python怎么爬取人人网新鲜事 发布时间:2020-08-24 18:10:44 来源:亿速云 阅读:113 这篇文章将为大家详细讲解有关Python怎么爬取人人网新鲜事,文章内容质量较高,因此小编 ...
- python爬虫爬网站数据登录_使用webdriver+urllib爬取网页数据(模拟登陆,过验证码)...
urilib是python的标准库,当我们使用Python爬取网页数据时,往往用的是urllib模块,通过调用urllib模块的urlopen(url)方法返回网页对象,并使用read()方法获得ur ...
- 使用webdriver+urllib爬取网页数据(模拟登陆,过验证码)
urilib是python的标准库,当我们使用Python爬取网页数据时,往往用的是urllib模块,通过调用urllib模块的urlopen(url)方法返回网页对象,并使用read()方法获得ur ...
- scrapy爬取某网站,模拟登陆过程中遇到的那些坑
本节内容 在访问网站的时候,我们经常遇到有些页面必须用户登录才能访问.这个时候我们之前写的傻傻的爬虫就被ban在门外了.所以本节,我们给爬虫配置cookie,使得爬虫能保持用户已登录的状态,达到获得那 ...
- python数据爬取、分析与内容审核基于PaddlePaddle
这次要做的就是分四步完成爬取评论数据并进行可视化的评论内容分析.先展示一下预期效果 第一步:爱奇艺<青春有你2>评论数据爬取(参考链接:https://www.iqiyi.com/v_19 ...
- 【Python】爬虫入门6:爬取百度图片搜索结果(基于关键字爬图)
源代码 #!/usr/bin/env python # -*- coding: UTF-8 -*-# 需求:爬取百度图片# noinspection PyUnresolvedReferences im ...
- python登录网站后爬取数据_需要登陆网站后才能获取数据的页面爬取
本文转载自以下链接:https://www.makcyun.top/web_scraping_withpython8.html 目的是万一博主网站无法访问到的话自己需要学习的东西可就不存在了. 本文需 ...
最新文章
- 最详细的JavaScript和事件解读
- RibbitMQ 大数据分布式下的消息队列思
- pandas按照索引来赋值,按照数据表的索引批量给某一个变量赋值的方法。
- Centos6.10源码部署zabbix-3.2.6
- 服务器与本地文件共享文件夹,云服务器对本地服务器共享文件夹
- WINCE6补丁安装
- 【Flink on k8s】JConsole 远程监控 TaskManager
- [2019上海网络赛F题]Rhyme scheme
- [2018.08.07 T1] 签到?
- MAVEN 修改为阿里数据源
- Vue整合Markdown组件+SpringBoot文件上传+代码差异对比
- 9. python 入门教程快速复习,序列,数值类型,字符串方法,列表、集合、字典方法,文件操作,解析式
- Android简易Flash播放器
- 网易16年研发实习生笔试题 - 寻找第K大
- apicloud命名空间$api方法集合
- Glidedsky系列—爬虫CSS反爬
- python base
- EMVTag系列8《IC卡公钥证书》
- matlab 一元函数最大值,一个用MATLAB编写的基于遗传算法的求一元函数最大值的程序...
- RSA加密算法计算题