人人貸網(wǎng)(人人貸網(wǎng)的數(shù)據(jù)爬取),36創(chuàng)業(yè)加盟網(wǎng)給大家?guī)?lái)詳細(xì)的介紹,讓更多的人可以參考:人人貸網(wǎng)(人人貸網(wǎng)的數(shù)據(jù)爬取)。
之前看到過(guò)網(wǎng)上有一篇有關(guān)爬取P2P網(wǎng)站上散標(biāo)投資數(shù)據(jù)和借貸人的信息數(shù)據(jù)的博文,后應(yīng)他人請(qǐng)求,幫忙實(shí)現(xiàn)。發(fā)現(xiàn)存在不少問(wèn)題,先整合前人資料(),說(shuō)一下爬取中遇到的問(wèn)題:
(一)首先分析"散標(biāo)投資"這一個(gè)模塊,共有51個(gè)頁(yè)面
進(jìn)入首頁(yè),調(diào)用360瀏覽器的F12(界面如下)選擇Network->XHR
后在上圖中左側(cè)點(diǎn)擊到第2個(gè)頁(yè)面,右側(cè)那一欄會(huì)彈出3個(gè)事件(對(duì)其中Method為GET的那一個(gè)事件進(jìn)行分析)
點(diǎn)擊Header,對(duì)General->Requesl URL, 和Request Headers->User-Agent 進(jìn)行分析(后文中會(huì)用到)
仔細(xì)觀(guān)察Request URL:!json.action?pageIndex=2&_=1474379219318,你會(huì)發(fā)現(xiàn)數(shù)據(jù)是Json格式,查看下一頁(yè),發(fā)現(xiàn)也是如此,不同頁(yè)面的數(shù)據(jù)格式是相同的。對(duì)此,我們的抓取思路就是:獲取網(wǎng)頁(yè)源代碼,從源代碼中提取數(shù)據(jù)。
數(shù)據(jù)來(lái)自于類(lèi)似這樣的地址:!json.action?pageIndex=2&_=1457395836611,刪除&_=1457395836611后的鏈接依然有效人人貸網(wǎng),打開(kāi)鏈接發(fā)現(xiàn)是json格式的數(shù)據(jù),而且數(shù)據(jù)就是當(dāng)前頁(yè)面的數(shù)據(jù)。至此,我們就找到了真正的數(shù)據(jù)來(lái)源
以下就是爬取"散標(biāo)列表"數(shù)據(jù)的代碼(Python 3.5.2 |Anaconda 4.0.0 (64-bit),低版本好像不能解析utf-8)
要想配置高版本見(jiàn)
import pandas as pd import numpy as np import requests headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'} #headers得根據(jù)自己的瀏覽器F12下自行修改調(diào)整,具體可見(jiàn)步驟c #自定義了一個(gè)解析網(wǎng)頁(yè)的函數(shù) def parse_html(i): url = "http://www.we.com/lend/loanList!json.action?pageIndex=%s&" % i #數(shù)據(jù)的真正來(lái)源(Request URL) resp=requests.get(url,headers=headers) #獲取頁(yè)面 html=resp.json() #頁(yè)面文字 data=pd.DataFrame(html['data']['loans']) data.to_csv('loans%s.csv' % i) #將整理后的數(shù)據(jù)寫(xiě)入csv格式文檔 print("%s successsed" % i)
(頁(yè)面總共51個(gè),可自己寫(xiě)個(gè)循環(huán)語(yǔ)句,但循環(huán)過(guò)程中可能出錯(cuò),我自己就是一個(gè)個(gè)頁(yè)面爬取的,然后再把51個(gè)頁(yè)面的數(shù)據(jù)loan整合)
總的來(lái)說(shuō),第一步為得是給第二步做鋪墊,因?yàn)榈诙叫枰玫降谝徊街衛(wèi)oans.csv中的loanId,可自行將其單獨(dú)整理為一個(gè)csv文檔
(二)如何獲取借貸人信息
a.點(diǎn)擊其中一欄即可進(jìn)入借貸人信息
為什么看不到借貸人信息呢,首先你的搞到一個(gè)帳號(hào)登錄即可見(jiàn)(自己隨便注冊(cè)一個(gè)啦)
b.帳號(hào)登錄后,按F12,剛開(kāi)始又是空白,如下圖
這時(shí)只要刷新一下頁(yè)面,然后找到Method為Get的事件人人貸網(wǎng),點(diǎn)擊打開(kāi)
記住Request Headers->Cookie, 后面代碼需要用到它
c.爬取借貸人信息的源代碼
import pandas as pd import re import numpy as np import requests import time import random from bs4 import BeautifulSoup s=requests.session() headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'} #根據(jù)瀏覽器下自行修改 headers['Cookie'] = 'gr_user_id=022d0f46-4981-4224-9895-18bfe32d9276; rrdLoginCartoon=rrdLoginCartoon; pgv_pvi=905847926; Hm_lvt_16f9bb97b83369e62ee1386631124bb1=1474288518,1474332677,1474336816,1474368269; Hm_lpvt_16f9bb97b83369e62ee1386631124bb1=1474372985; JSESSIONID=7EB90C9967D8C42B08DFB18EB9A9F74ED2ACC468B7D56B9372E2A20684713847; jforumUserInfo=bEAY23pgyLLLjII69w9oS%2BtK2jljmxa8%0A; IS_MOBLIE_IDPASS=true-false; activeTimestamp=5195275; gr_session_id_9199126ed94d770d=70bbe285-4ac6-42c9-a49b-9255d0eb9c46; gr_cs1_70bbe285-4ac6-42c9-a49b-9255d0eb9c46=user_id%3A5195275' #根據(jù)瀏覽器F12下的Request Headers->Cookie自行復(fù)制上去即可 def parse_userinfo(loanid):#自定義解析借貸人信息的函數(shù) timestamp=str(int(time.time())) + 'd' % random.randint(0,999)
urll="http://www.we.com/lend/detailPage.action?loanId=%.0f×tamp=" % loanid+timestamp
#這個(gè)urll我也不知道怎么來(lái)的,貌似可以用urll="http://www.we.com/loan/%f" % loanid+timestamp
#(就是頁(yè)面本身,我也沒(méi)試過(guò))
result = s.get(urll,headers=headers) html = BeautifulSoup(result.text,'lxml') info = html.find_all('table',class_="ui-table-basic-list") info1= info[0] info2 = info1.find_all('div',class_="basic-filed") userinfo = {} for item in info2: vartag = item.find('span') var = vartag.string if var == '信用評(píng)級(jí)': var = '信用評(píng)分' pf1 = repr(item.find('em')) value = re.findall(r'\d+',pf1) else: valuetag = item.find('em') value = valuetag.string userinfo[var]=value data = pd.DataFrame(userinfo) return data rrd=pd.read_csv('loanId.csv') #loanId是之前散標(biāo)數(shù)據(jù)中的loanId,將其單獨(dú)整理為一個(gè)csv文檔 loanId=rrd.ix[:,'loanId'] user_info = ['昵稱(chēng)', '信用評(píng)分', '年齡', '學(xué)歷', '婚姻', '申請(qǐng)借款', '信用額度', '逾期金額', '成功借款', '借款總額', '逾期次數(shù)','還清筆數(shù)', '待還本息', '嚴(yán)重逾期', '收入', '房產(chǎn)', '房貸', '車(chē)產(chǎn)', '車(chē)貸', '公司行業(yè)', '公司規(guī)模', '崗位職位', '工作城市', '工作時(shí)間'] table = pd.DataFrame(np.array(user_info).reshape(1, 24), columns=user_info) i = 1 for loanid in loanId: table = pd.concat([table, parse_userinfo(loanid)]) print(i) i += 1 #看一下循環(huán)多少次 table.to_csv('userinfo.csv',header=False)
整理出來(lái)的數(shù)據(jù)可能會(huì)有點(diǎn)亂,但總的來(lái)說(shuō)還是不錯(cuò)的。(相信大家還是能清理的)
總結(jié):以上內(nèi)容就是人人貸網(wǎng)(人人貸網(wǎng)的數(shù)據(jù)爬取)詳細(xì)介紹,如果您對(duì)創(chuàng)業(yè)項(xiàng)目感興趣,可以咨詢(xún)客服或者文章下面留言,我們會(huì)第一時(shí)間給您項(xiàng)目的反饋信息。
我對(duì)人人貸加盟感興趣,馬上免費(fèi)通話(huà)或留言!
(24小時(shí)內(nèi)獲得企業(yè)的快速回復(fù))
我們立即與您溝通
溫馨提示:
1.此次通話(huà)將不會(huì)產(chǎn)生任何費(fèi)用, 請(qǐng)放心使用
7x24小時(shí)電話(huà)咨詢(xún)
130*1234567