scrapy爬取互聯網金融平臺,與其餘類型網站不一樣,互聯網金融平臺有投資列表,其中的循環真是讓人煩躁,記錄一下。css
拿到標的信息和投資人記錄,而且數據持久化dom
沒有任何反爬蟲的措施,直接爬就好了scrapy
代碼邏輯:ide
1.當前獲取列表頁的url網站
2.自動翻頁爬取ui
3.到詳情頁爬取標的信息url
4.爬取投資人投資記錄code
import scrapy from urllib import parse from scrapy.http import Request from ..items import HaijhItemLoader,HaijhItem,HaijhListItem,HaijhListItemLoader class HaijinhuiSpider(scrapy.Spider): name = 'haijinhui' allowed_domains = ['www.haijinhui.com.cn'] start_urls = ['https://www.haijinhui.com.cn/borrow/list?filter=0_0_0_0&page.current=1&page.size=10'] def parse(self, response): """ 將當前列表頁的每條標的連接拿到 並傳給detail進行深刻爬取 已知頁碼能夠在url中循環 就不用翻頁了 """ total = response.css('.financing-list-box a') for i in total: title_url = i.css('::attr(href)').extract_first("") yield Request(url=parse.urljoin(response.url,title_url),callback=self.parse_detail) for x in range(1,52): next_pages = "https://www.haijinhui.com.cn/borrow/list?filter=0_0_0_0&page.current=%s &page.size=10" % (x) yield Request(url=next_pages,callback=self.parse) def parse_detail(self, response): loaders = HaijhItemLoader(item=HaijhItem(), response=response) loaders.add_css("title",".item-title h4::text") loaders.add_value("target_urls", response.url) loaders.add_value("target_urls_id", response.url) loaders.add_css("amount", ".layout-left.tender-focus li:first-child i::text") loaders.add_css("profit", "#rate i::text") loaders.add_css("terms", ".red.fz17::text") loaders.add_css("protype", ".item-title h4::text") loaders.add_css("title", ".item-title h4::text") h_loader = loaders.load_item() yield h_loader total_tr = response.css('.tab-page .table tr:not(:first-child)') for tr in total_tr: ilist_loader = HaijhListItemLoader(item=HaijhListItem(), response=response) ilist_loader.add_value("target_urls", response.url) ilist_loader.add_value("target_id", response.url) ilist_loader.add_value("invest_username", tr.css("td::text")[0].extract()) ilist_loader.add_value("invest_amount", tr.css("td")[2].css('i::text').extract()) ilist_loader.add_value("invest_time", tr.css("td:last-child::text").extract()) ilist_item = ilist_loader.load_item() yield ilist_item
根據所得到的數據,進行了一些基本計算,獲得一些有意思的數據,好比:ci
1.單筆投資最多的用戶是[13**4],他最多的一次單筆投資是在2017-12-18號下午4點多進行的,投了80萬元。get
2.排名第二的用戶是[18**8],他有兩次單筆投資70萬的,OMG!
3.投資筆數最多的用戶我估計是[80**0],他的投資記錄有將近290條,海金彙總共發標大約是510條(偏差5條),並且這個用戶的投資金額還不穩定,從1塊錢到16塊錢到50萬都有。記錄顯示他的最先一筆投資是2016年的1月份,那大概是個美好的早晨,第一筆投資投了2萬塊。
4.緊隨其後的另外一個用戶是[江湖**人],他的投資記錄也很多,大約有180多條,最高投資的一次是21萬多,固然最少的時候20幾塊也是投的。很巧的是,這個投資用戶的第一筆投資也是2016年的1月份,與上面那個用戶是同一天、同一個早晨。
5.海金匯平臺的標的中,最高的一筆借款是100萬,數據顯示有11條借款標的都是100萬的。所有都是在2017年7月份之後的。
6.最少的一筆借款是汽車抵押借款,2.5萬元。固然也有抵押房子只借3萬元的。
數據還能夠更豐富,豐富成不少張圖表均可以