前提

本文基于此篇博文的实现思路以及给出的代码。不得不说,此博主心真的细,这个数据隐藏点都找到了,从而使得此爬虫的实现简单许多。

但我在使用博主代码时,发现人人贷网站有些许改变,于是对应代码我也相应做了些许修改(主要加了cookie请求头信息,不加的话,有些数据为空,以及对一些数据字段的更新修改)。

代码如下

# coding=utf-8from requests.exceptions import RequestException
import requests
import json
import csv
import re
import osclass Spider(object):def __init__(self):self.headers = {'Accept': 'application / json, text / javascript, * / *; q = 0.01','Accept - Encoding': 'gzip, deflate, br','Accept - Language': 'zh - CN, zh; q = 0.9','Connection': 'keep - alive','Host': 'www.renrendai.com','Referer': 'https: // www.renrendai.com / loan.html','User - Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36','X - Requested - With': 'XMLHttpRequest','Cookie': 'rrdid=ccc75785-2c07-4dc4-b020-d846e1400e61; __jsluid_s=4c6ad9d4d4049fd05ad106c261fda012; Qs_lvt_181814=1584388964; Hm_lvt_a00f46563afb7c779eef47b5de48fcde=1584388968; gr_user_id=029f0129-ffae-41ed-8142-696b9cfc4616; grwng_uid=0008e890-1b28-4f43-9501-d22dc42f303a; _ga=GA1.2.1950582141.1584388974; _gid=GA1.2.1843462544.1584388974; renrendaiUsername=15580241130; utmSource=pc_pz_baidu; utm_medium=2075513; utm_campaign=716885827; utm_content=864625; utm_term=831733554_15058797666725; promotion_source=pc_pz_baidu; mediav=%7B%22eid%22%3A%22301358%22%2C%22ep%22%3A%22%22%2C%22vid%22%3A%22%22%2C%22ctn%22%3A%22%22%2C%22vvid%22%3A%22%22%7D; loginMethod=password; IS_MOBLIE_IDPASS=true-false; jforumUserInfo=eiSmTE3oI809bABL60b2VNQ6XE%2FegqCwFJN6FcAwPsE%3D%0A; _gat=1; activeTimestamp=17971412; we_token=LXY5Z0NXSzVmMHBIN1FVUmhFQW5pdTJZUS1SaDBxdFI6MTc5NzE0MTI6MjNjNWM5ZjljZWYwNzQyNWQ2ODA4MmQ0NzI1ZTBjMDRjNmY2N2E4ZQ%3D%3D; we_sid=s%3AkvTAOQE0ZgUL4tKzSTBlhqZYF-E-J2QG.mOqona1ez021fYXhK0kBadT9xkwlp1LtTI%2FdK3xJ2XU; JSESSIONID=2C91F95436A01AF4DA78482A3EA0292A; bf0acacc0a738790_gr_last_sent_sid_with_cs1=027d3626-985a-4c76-8c70-aa3e73a19965; bf0acacc0a738790_gr_last_sent_cs1=17971412; bf0acacc0a738790_gr_cs1=17971412; bf0acacc0a738790_gr_session_id=027d3626-985a-4c76-8c70-aa3e73a19965; bf0acacc0a738790_gr_session_id_027d3626-985a-4c76-8c70-aa3e73a19965=true; Qs_pv_181814=692552440239038100%2C3904391899668128000%2C3858476856754299000%2C3922951718213370000%2C2429641774634917000; Hm_lpvt_a00f46563afb7c779eef47b5de48fcde=1584393613'}self.count = 0 # 记录成功爬取的条数# 获取散标信息def get_sanbiao(self):# 一共1000条,爬10次,每次100条for page in range(10):url = 'https://www.renrendai.com/loan/list/loanList?startNum={}&limit=100'.format(page)try:response = requests.get(url, headers=self.headers)if response.status_code == 200:self.parse_sanbian(response.text)except RequestException as e:print(e)# 解析散标信息def parse_sanbian(self, data):data = json.loads(data)for item in data['data']['list']:url = 'https://www.renrendai.com/loan-{}.html'.format(item['loanId'])self.get_detailinfo(url)# 获取详细信息def get_detailinfo(self, url):try:response = requests.get(url, headers=self.headers)if response.status_code == 200:self.count += 1print('成功爬取第 {} 条'.format(self.count))self.parse_detailinfo(response.text)else:print('failure: {}'.format(url))except RequestException as e:print(e)# 解析详细信息def parse_detailinfo(self, data):data = data.replace(u'\xa9', u'').replace('\\u0022', '"').replace('\\u005C', '\\')  # gbk无法对u'\xa9'代表的字符进行编码,在Unicode中u'\xa9'代表的是©。因此直接忽略掉。data = re.compile("var info = '({.*?})'", re.S).findall(data)data = json.loads(data[0])# print(data['borrower'])result = {}# 顶部信息result['loanId'] = data['loan']['loanId'] # Numberresult['borrowType'] = data['loan']['borrowType'] # 贷款类型result['amount'] = data['loan']['amount'] #标的总额result['interest'] = data['loan']['interest'] # 年利率result['months'] = data['loan']['months'] # 还款期限result['creditLevel'] = data['borrower']['creditLevel']  # 风险等级result['repayType'] = '按季还款' if int(data['loan']['repayType']) else '按月还款' # 还款方式result['loanType'] = '等额本息' if data['loan']['loanType'] == 'DEBX' else '付息还本' #借贷方式result['repaySource'] = data['repaySource']  # 还款来源# 借贷人信息result['realName'] = data['borrower']['realName']  # 姓名result['gender'] = data['borrower']['gender'] # 性别result['age'] = 2019-int(data['borrower']['birthDay'][:4]) # 年龄result['marriage'] = '已婚' if data['borrower']['marriage'] else '未婚' # 婚姻result['graduation'] = data['borrower']['graduation']  # 学历result['salary'] = data['borrower']['salary'] # 收入result['houseLoan'] = '有' if data['borrower']['houseLoan'] else '无'  # 房贷result['carLoan'] = '有' if  data['borrower']['carLoan'] else '无' # 车贷result['officeDomain'] = data['borrower']['officeDomain'] # 公司行业result['hasOthDebt'] =data['hasOthDebt'] # 其他负债# 信用信息result['totalCount'] = data['userLoanRecord']['totalCount'] # 申请借款result['successCount'] = data['userLoanRecord']['successCount']  # 成功借款result['alreadyPayCount'] = data['userLoanRecord']['alreadyPayCount']   # 还清笔数result['availableCredits'] = data['borrower']['availableCredits']  #信用额度result['borrowAmount'] = data['userLoanRecord']['borrowAmount']  # 借款总额result['notPayTotalAmount'] = data['userLoanRecord']['notPayPrincipal']+data['userLoanRecord']['notPayInterest']  # 待还本息result['overdueTotalAmount'] = data['userLoanRecord']['overdueTotalAmount']   # 逾期金额result['overdueCount'] = data['userLoanRecord']['overdueCount']  # 逾期次数result['failedCount'] = data['userLoanRecord']['failedCount']  # 严重逾期self.save_excel(list(result.values()))# 存到exceldef save_excel(self, data):out = open('人人贷.csv', 'a', newline='')write = csv.writer(out, dialect='excel')write.writerow(data)def run(self):if os.path.exists('./人人贷.csv'):os.remove('./人人贷.csv')self.save_excel('序号 贷款类型 标的总额 年利率 还款期限 风险等级 还款方式 借贷方式 还款来源'' 姓名 性别 年龄 婚姻 学历 收入 房贷 车贷 公司行业 其他负债'' 申请借款 成功借款 还清笔数 信用额度 借款总额 待还本息 逾期金额 逾期次数 严重逾期'.split(' '))self.get_sanbiao()if __name__ == '__main__':spider = Spider()spider.run()

注意:大家在使用时记得修改成自己cookie信息,其次,由于网站结构随时可能会变,从而此爬虫相应随时可能会失效,具体还需大家自己调试。

顺便附上一份自己当时爬的数据,关注公众号—>BatFor<—即可获取

python3爬虫----人人贷散标用户信息爬取相关推荐

  1. Python爬虫 - 人人贷散标

    前言 这次爬的网站 人人贷 - 散标 是一个客户要求爬的,数据一共是148w多条,不过后来发现有绝大部分是无效数据,也就是那个页面不存在,不过我看网上很多人爬这个网站都是用什么 BeautifulSo ...

  2. python爬人人贷代码视频_Python爬虫 - 人人贷散标

    前言这次爬的网站 [人人贷 - 散标](网贷p2p散标列表 - 人人贷官网) 是一个客户要求爬的,数据一共是148w多条,不过后来发现有绝大部分是无效数据,也就是那个页面不存在,不过我看网上很多人爬这 ...

  3. 人人贷散标爬虫实例进阶-使用异步io

    写在前面: 1.该代码写于2020年4月5日,经查看,人人贷网站前端已出现变化,所以该代码无法直接运行.该代码为此版本的改善.人人贷散标爬虫实例_小zhan柯基-CSDN博客_人人贷爬虫 2.由于爬取 ...

  4. python爬取微博用户正文_基于Python的新浪微博用户信息爬取与分析

    基于 Python 的新浪微博用户信息爬取与分析 邓文萍 [摘 要] 摘要:本文设计并实现了一个微博用户信息爬取与分析系统 , 利用 Cookie 实现了用户的模拟登录 , 使用 Python 语言的 ...

  5. 网易云音乐歌手歌曲、用户评论、用户信息爬取

    这里以邓紫棋歌手为例,可以去网易云音乐看她的主页: 所有完整的代码在楼主的github:https://github.com/duchp/python-all/tree/master/web-craw ...

  6. Python3.x 网络爬虫之淘宝模特照片信息爬取

    本文一部分代码参考网络大牛文章,在此深表感谢,如有侵犯请告知,谢谢. 本文主要是作者在学习过程中,对一些学习内容进行总结与练习,期望对后来学习者有一定的帮助. 使用的Python第三方库主要包括以下几 ...

  7. python 跨知乎app发私信以及Python专栏30万用户信息爬取

    import requests class SendMsg:def __init__(self):self.url='https://www.zhihu.com/api/v4/messages'#要发 ...

  8. Scrapy框架爬虫项目:京东商城笔记本电脑信息爬取

    一.创建Scrapy项目 在cmd中输入一下指令创建一个新的scrapy项目及一个爬虫 scrapy startproject JD_Goodscd JD_Goodsscrapy genspider ...

  9. Python爬虫实战(十一) B站热门信息爬取(窗口版)| Tkinter实现GUI交互式界面

    目录 一.主页面设计 1.1 Tkinter基本介绍 1.2 设计布局 二.查询功能实现 2.1 分区字典构建 2.2 输入日期处理 2.3 书写爬虫函数 三.全部代码 更多信息查询(2021-2-1 ...

最新文章

  1. 马斯克:“星链”卫星已能提供服务
  2. 欢迎大家多来关注下!
  3. 深度学习(三十一)——Style Transfer
  4. 费诺编码的gui页面设计_GUI设计和UI设计有什么区别?
  5. codeigniter index.php,CodeIgniter如何隐藏index.php | 学步园
  6. python之类与对象(2)
  7. H5 27-优先级之important
  8. Ubuntu16.04版安装VMwareTools的步骤和没法挂载目录问题的解决
  9. 《超实用的HTML代码段》阅读笔记1——HTML5自动聚焦
  10. 对网站的文件和资源进行优化、前端开发优化
  11. 监控导致设备cpu使用率高的原因
  12. FOXIT PDF EDITOR工具分割PDF
  13. 摄像头各参数的意义_详解:摄像头参数介绍说明
  14. python怎么输入正整数_python判断所输入的任意一个正整数是否为素数的两种方法...
  15. python去除重复单词_Python程序,用于删除给定句子中的所有重复单词。
  16. 场效应管的分类及型号命名方法
  17. SVG排版公众号文章『CSS滤色混合模式』模板代码
  18. 21款奔驰S400商务型升级原厂HUD抬头显示系统,提升行车安全性
  19. win10 声音设置
  20. macOS Ventura 13.1 系统问题:掉电快 充电慢

热门文章

  1. 你关注过黑产、羊毛党吗?用户增长的另一面
  2. android 高仿苹果listview,android listview仿iphone特效
  3. Delphi图像处理 -- 图像合成
  4. 电脑显示无法启动程序 因为计算机丢失,电脑显示无法启动此程序丢失.dll文件怎么办...
  5. hbck源码系列(四)--表的完整性检查和修复Check
  6. Win10下 VScode+boost使用
  7. 顶控科技RTE080总线机械手控制系统在双Z轴桁架机械手上的应用
  8. hud 1013 求一个数的数字根(合九法||模拟)
  9. 汽车之家下载文件和图片
  10. 周下载量过200万的npm包被注入恶意代码,Vue、Node项目恐受影响