广西互联网金融平台系列-Scrapy爬虫爬取海金汇平台数据

1、背景

scrapy爬取互联网金融平台,与其余类型网站不一样,互联网金融平台有投资列表,其中的循环真是让人烦躁,记录一下。css

2、目的

拿到标的信息和投资人记录,而且数据持久化dom

3、条件

没有任何反爬虫的措施,直接爬就好了scrapy

4、示例代码

代码逻辑: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

5、很是有意思的数据

根据所得到的数据,进行了一些基本计算,获得一些有意思的数据,好比: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万元的。

数据还能够更丰富,丰富成不少张图表均可以

相关文章
相关标签/搜索