手把手教你用python爬取人人贷网站借款人信息

P2P是近年来很热的一个行业,由于这个行业在国内兴起才不久,国内的很多学者对这个行业都兴趣盎然,在大学研究互联网金融的学者更是有一大群。小编是学金融出身,深知数据在做学术研究的重要性,之前有不少学互联网金融的同学、师弟师妹们都请教过我如何获取研究数据,小编当年论文的研究数据其实也是花了不少大洋在网上买的。最近有幸接触到python这个强大的工具,python的一个强大的功能就是进行数据发掘(俗称“爬虫”),原来爬虫并没有想象中的那么难,只要花点功夫学习一下你也可以,下面就让我手把手教你们如何在人人贷网站上爬虫借款人信息。

首先我们需要下载并安装python软件,windows版本下载地址,下载python 3.5以上的版本, 建议下载可以直接安装的包:Windows x86 executable installer,下载下来之后直接双击安装,安装的时候记得勾选Add python to path选项

勾选 add python to path选项
,后面的按默认的选项安装即可。

由于人人贷中借款人的信息需要登录之后才可见,因此需要先注册一个人人贷的账号用于爬虫。本爬虫脚本调用的是Firefox浏览器,需要电脑先下载并安装Firefox浏览器,用Firefox爬虫需要下载相应的驱动,可以到下面的地址下载下载geckodriver,并将该文件放在python的安装目录python3.exe所在的目录。

该爬虫脚本还需要用到几个模块,需要使用pip来安装,首先确保pip在电脑的环境变量中,关于如何设置电脑的环境变量网上有很多相关的文章,可以自行去了解。按住 win+R键,输入cmd调用系统的DOS命令栏,然后用pip安装对应的python包,使用的命名格式如下:pip install “模块名”,如安装selenium模块,命令如下pip install selenium。采用这种方式分别安装selenium、pandas、bs4、requests、numpy模块。
用pip安装python模块

用于爬虫的脚本如下,在电脑上新建一个文件夹,命名为人人贷数据爬虫,然后用记事本在里面新建一个文件,并将后缀名改为.py,如renrendai_scrapy.py ,copy如下的脚本到这个renrendai_scarpy.py文件夹中,代码写的比较烂,源代码如下:

# -*- coding: utf-8 -*-
"""
Created on Mon Aug 13 11:10:39 2018
@author: 95647
"""
from selenium import webdriver
import time
import json
import pandas as pd
import numpy as np
from bs4 import BeautifulSoup
from selenium.webdriver.firefox.options import Options  #use headless browser login
import requests
from pandas import DataFrame
time_start = time.clock()headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
#headers according to push F12 in browser
#enter the user information you have signed
username = u"username_"      #在此填入你的用户名
password = "password_"     #在此填入你的密码
#driver = webdriver.Firefox()  #使用Firefox自带的无头浏览器登录
options = Options()
options.add_argument('-headless')
driver = webdriver.Firefox(firefox_options=options)  #use headless firefox to login def LoginRRD(username, password):try:print(u'准备登录人人贷网站...')driver.get("https://www.we.com/pc/passport/index/login")elem_user = driver.find_element_by_name("j_username")elem_user.send_keys(username)time.sleep(2)  #设置等待时间,不用修改elem_pwd = driver.find_element_by_name("j_password")elem_pwd.send_keys(password)time.sleep(5)   #设置等待时间,以防止用户名下拉菜单挡住登录按钮driver.find_element_by_xpath(r"""//*[@id="form-login"]/div/div[2]""").click() #点击登录time.sleep(10) #设置等待几秒,以进入用户主界面,如不等待而直接进入爬虫会提示未登录print(u'登录成功!')except Exception as e:print("Error:", e)finally:print(u'End Login!\n')
loanid_e =[]
def parse_userinfo(loanid,idx): """用于提取借款人各项信息数据"""global loanid_e
#    print(str(loanid))urll="https://www.renrendai.com/loan-%s.html"%str(loanid)  driver.get(urll)html = BeautifulSoup(driver.page_source,'lxml')
#    print(html.decode('utf-8'))
#    f= open("html0.txt","w")
#    f.write(html.decode("utf-8").replace('\xa9',"@"))    
#    f.closeinfo = html.findAll('div',class_="loan-user-info")   #这个地方的命名经常修改userinfo = {}try:items = info[0].findAll('span',{"class":"pr20"})except IndexError as e:LoginRRD(username, password)loanid_e.append(loanid)else:    for item in items:var = item.get_text()value = item.parent.text.replace(var,"")userinfo[var]=valuedata = pd.DataFrame(userinfo,index=[idx])            return datadef get_loanId():table=DataFrame(np.array(['allowAccess', 'amount', 'amountPerShare', 'beginBidTime', 'borrowerId','borrowerLevel', 'currentIsRepaid', 'displayLoanType', 'finishedRatio','forbidComment', 'interest', 'interestPerShare', 'leftMonths', 'loanId','loanType', 'months', 'nickName', 'oldLoan', 'openTime', 'overDued','picture', 'principal', 'productId', 'readyTime', 'repaidByGuarantor','startTime', 'status', 'surplusAmount', 'title', 'utmSource']).reshape(1,30),columns=['allowAccess','amount', 'amountPerShare', 'beginBidTime', 'borrowerId','borrowerLevel', 'currentIsRepaid', 'displayLoanType', 'finishedRatio','forbidComment', 'interest', 'interestPerShare', 'leftMonths', 'loanId','loanType', 'months', 'nickName', 'oldLoan', 'openTime', 'overDued','picture', 'principal', 'productId', 'readyTime', 'repaidByGuarantor','startTime', 'status', 'surplusAmount', 'title', 'utmSource'])#网页源码获取i=1for i in range(1,101):    #当前101散标信息页面一共只有101页,所以填的是101,可根据具体情况修改url = "https://www.renrendai.com/loan/list/loanList?startNum=%s&limit=10"%str(i) #resourse of dataresp=requests.get(url,headers=headers)    #获取页面源代码html=resp.text data_dic = json.loads(html)data=DataFrame(data_dic['data']['list'])table=pd.concat([table,data])i += 1#save filetable.to_csv('人人贷11.csv',header=False) #保存贷款人信息到人人贷.csv文件夹中loanId=table['loanId']return loanIdLoginRRD(username, password)   #login renrendai website
loanId = get_loanId()     #获取借款人ID 
user_info = ['昵称', '信用评级','姓名','身份证号','年龄', '学历', '婚姻','申请借款', '信用额度', '逾期金额', '成功借款', '借款总额', '逾期次数','还清笔数', '待还本息', '严重逾期','收入', '房产', '房贷', '车产', '车贷','其他','公司行业','公司规模', '岗位职位', '工作城市', '工作时间']
table2 = pd.DataFrame(np.array(user_info).reshape(1, 27), columns=user_info)i = 1
idx = 0 
for loanid in loanId[1:10]:  """后面的数值用来设置需要爬取多少个借款人信息,如全部需要就输入len(loanId +1)替代1000,建议先输入5来进行爬虫测试,以避免爬虫时间太长,而实际没有抓取到数据"""table2 = pd.concat([table2, parse_userinfo(loanid,idx)])
#    print(loanid)print(i)idx += 1i += 1   #check how many times of this program looptable2.to_csv('borrowerinfo1.csv',header=False)time_end = time.clock()  #this scarpy use of total time
print("\nElapsed time: %s seconds"%(str(time_end -time_start)))

需要修改代码里面的部分内容,将username = u"username_" 里面的username_修改为自己的用户名,password = “password_”,将里面的 password_ 修改为自己的登录密码。还有其他可以修改的地方都用中文提示了,请按照自己的需要进行相应的设置。完成以上工作之后,见证奇迹的时刻来了。

同时按住win+R键,输入cmd按回车,调出dos命名栏,然后在里面输入python + renrendai_scrapy.py的文件路径,如:C:\Users\95647>python desktop\1\renrendai_scrapy.py ,“>”后面是我输入的命令,文件路径实际上是在C:\Users\95647\ desktop\1\renrendai_scrapy.py,由于我前面已经定位到了C:\Users\95647,所以节省了前面的输入,可对照下图。
爬虫脚本运行命令截图
爬虫处理的结果保存的文件格式为csv格式,可以用excel直接打开,但是需要转换一下csv的编码格式,可以用notepad++等软件来转为ANSI的编码格式,这样用excel打开就能够正常显示了,我这边测试爬虫了前1000个用户的数据(总共用时30多分钟,这个和你的网速关系比较大),每个用户包含了27条信息,部分结果如下:
借款人信息表
对爬虫感兴趣的朋友还可以阅读我的另外一条博文:用python爬取网贷之家p2p平台数据
由于人人贷网站后面进行了维护和更新,上面的代码在爬取数据的时候可能会出现问题,这里提供一个最新的代码下载链接:最新爬虫脚本下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/252968.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

你我贷越冬 | 一点财经

赶在2018年完结之前,你我贷母公司嘉银金科赴美IPO,为今年国内互金企业海外上市潮写下完结篇。 美国当地时间12月19日,嘉银金科(Jiayin Group Inc)向美国证券交易委员会(SEC)提交了首次公开募股(IPO)申请文件。嘉银金科申请在纳斯达克(NASDAQ…

word文件打开就是只读模式,怎么取消?

没有设置过什么但是打开word文件就已经是只读模式了,这该如何取消只读模式呢?今天有几个方法分享给大家: 方法一: 点击工具栏中的【文件】-【信息】-取消【始终以只读方式打开】 方法二: 文件另存为,选择【…

Word文件退出只读模式,需要密码?

word文件打开的时候,文件弹出提示框,提示文件以只读方式打开,只读模式,就是因为word文件设置了限制编辑。但是想要编辑的情况下,我们点击【否】也没有任何改变,直接就打开了word文件。 有些朋友可能以为&am…

什么是word文件只读模式?

当我们打开word文件的时候,出现提示框,提示文件以只读模式打开 但是不管我们选择哪个选项,我们都可以正常打开文件,那么这个只读模式是什么呢?这其实就是word文件的限制编辑,也就是不能编辑这份word文件&am…

Word 只读模式修改

一、设置只读模式: 方法一: 打开目标文件,点击另存为,如下: 2.点击常规选项,勾选‘建议以只读方式打开文档,也可以在此页给文档加密: 方法二: 在工具栏-->审阅--->…

php更改文件为只读,word只读模式怎么修改

word只读模式的修改方法:1、检查一下任务栏中是否打开了两份相同的Word文档,关闭一份之后,就可正常编辑;2、更新系统对应文档的软件版本号,解决兼容性问题;3、硬盘保护模式或者另存到可编辑权限的硬盘空间中…

word只读模式怎么改成编辑模式

Word只读文档改成可编辑文档有在关闭只读属性、停止审阅保护、插入文档等多个不同的修改方法, 以下为在关闭只读属性改为可编辑文档的具体操作步骤: 方法一: 右键选择word文件,选择【属性】,在属性中,我们…

解除Word文件被设置为只读属性,无法编辑复制的问题

问题随手记 随手记录解决的错误 写在前面: 此方法只是解除Word文件的限制编辑,不是破解Word文件的打开密码。 解决办法 1.打开受保护的Word文件,弹出的窗口选择“是”或者“否”都没有关系。 2.点击“文件”,选择“”另存为…

Word只读方式有哪些?

Word文件打开就是只读模式?只读方式有两种,今天来讲一下两种只读模式分别是什么,可以帮助到遇到了只读的word文档的朋友知道如何解决,也可帮助想要设置只读模式的朋友提供操作方法。 只读方式一: 这种只读模式仅起到…

【word】编辑只读文件的两种方法

一、标记为最终状态 1、文件->信息->保护文档->标记为最终状态 2、选择“确定” 3、点击确定,标记为最终状态 二、使用常规选项 1、文件->另存为->计算机->浏览 2、在弹出页面选择工具->常规选项 3、勾选,建议以只读方式打开…

Word的只读模式和限制编辑有区别吗?如何设置和取消?

给Word文档设置保护,可以选择“只读模式”或者“限制编辑”,但两者还是有区别的,下面就来具体说说。 一、保护方式不同 设置了“只读模式”的word文档,打开时就会出现提示,需要输入密码才能修改文件,否则…

如何取消Word文档的只读模式或者限制编辑

Word文档的只读模式和限制编辑,都是为了保护文档不能随意改动,但两者的保护模式还是有区别的,取消方法也不同。 设置了“只读模式”的word文档,在打开后会出现提示框,只有输入密码才能获取写权限,否则只能…

Win10系统文件夹被设为只读,取消Word文件的只读模式

这个问题困扰了我一天一夜。昨天我发现有个word文件(后面称为“它”)写错了,然后去修改,结果发现我的文件变成了只读。真是百思不得其解,我前段时间刚编辑过它,而且直接保存了(没有另存为&#…

word文件只读模式是怎么设置的?

想要将word文件从编辑模式变为只读模式方式有很多,一起来看一下如何将word文件设置成只读模式。 方式一 第一种只读模式的设置很简单,不需要设置密码,点击工具栏中的【文件】-【信息】-【保护文档】-【始终以只读方式打开】就可以了。想要编辑…

PS使用钢笔工具抠图

一般抠一些轮廓比较清晰,没有许多弯弯角角的图片的时候可以采用快速选择工具来进行抠图,但是要扣一个比较复杂的图的时候(比如雕塑和汽车等),就要用到钢笔工具啦它可以很好的,很细致地把想要的图案完整的抠…

ps入门第14天_ps钢笔工具的使用 案例:ps钢笔抠图精准抠图_ps路径抠图

一、前言 “快速选择工具钢笔工具”实现精准抠图 二、操作步骤 选择钢笔工具---选择路径 点击需要抠图的边,再点击下一次时,不要放开鼠标,沿着此点拖动,使之形成一个切线。(单击拖拉) 按住alt&#xf…

php里用钢笔画曲线,ps钢笔工具怎么抠图

ps钢笔工具抠图的步骤: 1、把我们要用钢笔工具抠图的素材放入到ps的界面中,复制这个素材到背景副本一份,然后点击【钢笔工具】准备在这个背景副本上进行ps钢笔工具的抠图操作,如图所示~ 2、鼠标依次点击这串香蕉的边缘&#xff0c…

ps抠图 淘宝抠图

1、钢笔工具 (1)选中钢笔工具,点击鼠标左键不放可以调整钢笔路线; (2)按住ctrl,可以鼠标拖动钢笔节点,调整钢笔路线; (3)选中要删除的钢笔节点&am…

PS学习记录6--html5 canvas+js实现ps钢笔抠图

APP在微信的推广下载转化率一直是困扰开发者和推广者的一大难题,那么如何提高APP的下载转化率呢?微信作为一款国内最大的社交类APP。有着非常大的开发潜力。但是我们如何在推广过程中能够高效、有针对性的提高APP的下载转化率,达到意想不到的…

英雄联盟不自动进入游戏重新连接服务器,游戏页面提示请重新连接服务器是什么原因?电脑玩不了LOL英雄联盟的解决方法...

将电脑系统升级到win10专业版之后,网友会发现:想要在电脑上玩LOL英雄联盟玩不了,有的时候虽然可以打开游戏,但是,游戏页面里面就提示:请重新连接服务器,win10电脑玩不了LOL英雄联盟这一个问题困…