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万元的。
数据还能够更丰富,丰富成不少张图表均可以