广西互联网金融平台系列-Scrapy爬虫爬取乐助贷Ajax api数据(无登陆GET)

本文主要是介绍广西互联网金融平台系列-Scrapy爬虫爬取乐助贷Ajax api数据(无登陆GET),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

一、背景

1.在爬取数据的过程中,会遇到很多不同的数据结构,有些是html/css直接输出、有些是JS渲染是数据、有些是JS点击,而有一些则是用Ajax与API通信进行数据的请求。这一次记录的是Ajax与API通信这种类型的数据抓取。

2.这一次的案例是GET请求,非POST,所以轻松一点。

二、目的

1.获取广西某网贷平台标的信息数据--[标的名称、标的收益率、标的期限、标的金额]等信息

2.获取其投资人投资记录信息--[投资人ID、投资人username、投资人投资金额amount]

3.通过Scrapy框架进行数据抓取

三、条件

1.目标接口请求类型为:GET请求2.目标无需登录验证3.目标需要翻页

四、工具

1.Scrapy2.MysqlWorkben3.Json

五、示例

1.简单示例

2.这里不翻页爬

spiders/spider.py中编写具体爬虫逻辑:

import scrapy
from scrapy.http import Request
import json
from urllib import parseclass LezhuSpider(scrapy.Spider):name = 'lezhudai'allowed_domains = ['www.lezhudai.com']start_urls = ["https://www.lezhudai.com/?action=invest_service.get_borrow_list&type=2&repayment_term=0&interest_rate=0&state=2&sort_type=0&repay_type=0&page_index=1"]def parse(self, response):"""将当前API的所有信息拿到并传给detail进行深入爬取简单测试只爬取当前页"""sites = json.loads(response.body_as_unicode())  # 通过json loads解析json数据 并且转换编码lsites = sites['list']for i in range(0,len(lsites)):""" 在循环中获取标的信息,包括标的id/标题/金额/投资收益率/投资期限等 然后根据标的id构造详情页 ,调用parse_detail进行详情页的接口请求"""lid = lsites[i]['id']title = lsites[i]['name']amount = lsites[i]['amount']profit = lsites[i]['annual_rate']terms = lsites[i]['period']print("标的ID=" + lid + ",标的名称=" + title + ",标的金额=" + amount + ",标的收益率" + profit + ",标的期限")yield Request(url="https://www.lezhudai.com/?action=invest_service.get_borrow_invest_log&id=%s&page_index=1" %(lid), callback=self.parse_detail)def parse_detail(self, response):"""根据上面传进来的url 解析投资记录获取投资人投资记录信息 包括[投资人id/投资人用户名/投资人投资金额]记录当前接口url 后期入库进行关联识别"""lsites = json.loads(response.body_as_unicode())  # 解码invest = lsites['list']for i in range(0,len(invest)):target_urls = response.urluserid = invest[i]['user_id']user_name = invest[i]['user_name']amount = invest[i]['amount']print(userid +"->" + user_name + "->" + amount)print(target_urls)

保存运行,即可得到输出结果:

标的信息数据,到网页中对比,数据无误

标的ID=11371,标的名称=乐助分期借款66611779,标的金额=1540000,标的收益率0.12,标的期限24

标的ID=11370,标的名称=乐助分期借款66611778,标的金额=1540000,标的收益率0.12,标的期限24

标的ID=11368,标的名称=乐助分期借款66611774,标的金额=1540000,标的收益率0.12,标的期限24

标的ID=11367,标的名称=乐助分期借款66611771,标的金额=1540000,标的收益率0.12,标的期限24

标的ID=11366,标的名称=乐助分期借款66611770,标的金额=1540000,标的收益率0.12,标的期限24

标的ID=11365,标的名称=乐助分期借款66611769,标的金额=1540000,标的收益率0.12,标的期限24

标的ID=11364,标的名称=乐助分期借款66611768,标的金额=1540000,标的收益率0.12,标的期限24

标的ID=11363,标的名称=乐助分期借款66611767,标的金额=1540000,标的收益率0.12,标的期限24

标的ID=11362,标的名称=乐助分期借款11111766,标的金额=1980000,标的收益率0.12,标的期限24

标的ID=11358,标的名称=乐助分期借款22211762,标的金额=1980000,标的收益率0.12,标的期限24

投资人投资记录信息输出:

86813->138*****239->1980000 https://www.lezhudai.com/?action=invest_service.get_borrow_invest_log&id=11358&page_index=1

40270->185*****884->1980000 https://www.lezhudai.com/?action=invest_service.get_borrow_invest_log&id=11362&page_index=1

67116->139*****756->1540000 https://www.lezhudai.com/?action=invest_service.get_borrow_invest_log&id=11363&page_index=1

……

……

……

然后可以编写Item和对应的数据处理了,比如将金额格式统一float 19800.00元,收益率12%等等操作

再到Pipeline编写入库或者存入文件的操作

转载于:https://my.oschina.net/RanboSpider/blog/1605032

这篇关于广西互联网金融平台系列-Scrapy爬虫爬取乐助贷Ajax api数据(无登陆GET)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/761397

相关文章

Python使用Pandas对比两列数据取最大值的五种方法

《Python使用Pandas对比两列数据取最大值的五种方法》本文主要介绍使用Pandas对比两列数据取最大值的五种方法,包括使用max方法、apply方法结合lambda函数、函数、clip方法、w... 目录引言一、使用max方法二、使用apply方法结合lambda函数三、使用np.maximum函数

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

一分钟带你上手Python调用DeepSeek的API

《一分钟带你上手Python调用DeepSeek的API》最近DeepSeek非常火,作为一枚对前言技术非常关注的程序员来说,自然都想对接DeepSeek的API来体验一把,下面小编就来为大家介绍一下... 目录前言免费体验API-Key申请首次调用API基本概念最小单元推理模型智能体自定义界面总结前言最

Redis的数据过期策略和数据淘汰策略

《Redis的数据过期策略和数据淘汰策略》本文主要介绍了Redis的数据过期策略和数据淘汰策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录一、数据过期策略1、惰性删除2、定期删除二、数据淘汰策略1、数据淘汰策略概念2、8种数据淘汰策略

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav

Python给Excel写入数据的四种方法小结

《Python给Excel写入数据的四种方法小结》本文主要介绍了Python给Excel写入数据的四种方法小结,包含openpyxl库、xlsxwriter库、pandas库和win32com库,具有... 目录1. 使用 openpyxl 库2. 使用 xlsxwriter 库3. 使用 pandas 库

SpringBoot定制JSON响应数据的实现

《SpringBoot定制JSON响应数据的实现》本文主要介绍了SpringBoot定制JSON响应数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录前言一、如何使用@jsonView这个注解?二、应用场景三、实战案例注解方式编程方式总结 前言