首页 > 其他分享 >集思录可转债数据的获取(2)

集思录可转债数据的获取(2)

时间:2024-12-05 18:58:43浏览次数:7  
标签:cookies res driver 获取 jisilu time 可转债 集思录 div

集思录可转债数据的获取(1)
集思录可转债数据的获取(2)

方法三 界面模拟登记加XHR接口

在集思录https://www.jisilu.cn/data/cbnew/#cb 页面中,打开开发人员工具后,刷新页面,可以在网络中过滤XHR,很容易发现数据的获取接口是类似这么一个链接
https://www.jisilu.cn/data/cbnew/cb_list_new/?___jsl=LST___t=1732953976728,

猜测,后缀的一串数字是time参数,先把地址直接复制到浏览器里,看看返回数据
在这里插入图片描述
可以看到,能够正常返回数据,但是针对游客仅显示前30条。那想办法模拟登录,携带cookies再访问应该就可以了。

为了方便获取cookies,这里使用requestium模块来完成这个小爬虫。

Requestium 简介:
Requestium 是一个 Python 库,它将 Requests、Selenium 和 Parsel 的功能合并为一个用于自动化 web 操作的集成工具。该库是为编写 web 自动化脚本而创建的,这些脚本主要使用请求编写,但能够在维护会话的同时,无缝切换到网站中 JavaScript 密集部分的 Selenium。Requestium 为 Requests 和 Selenium 添加了独立的改进,并且每一个新功能都经过了延迟评估,因此即使编写只使用 Requests 或 Selenium 的脚本,它也很有用。

首先,使用requestium模块模拟登录,这块代码和selenium几乎完全一样,改一下函数名称就行。

from webdriver_manager.chrome import ChromeDriverManager
from requestium import Session, Keys
import time
import json

user='XXXXXX'
password='XXXXXX'

s = Session(headless=False,webdriver_path=ChromeDriverManager().install())
s.driver.get('https://www.jisilu.cn/account/login/')
s.driver.ensure_element_by_xpath("/html/body/div[3]/div/div/div[1]/div[1]/div[3]/form/div[2]/input").send_keys(user)
s.driver.ensure_element_by_xpath("/html/body/div[3]/div/div/div[1]/div[1]/div[3]/form/div[3]/input").send_keys(password)
s.driver.ensure_element_by_xpath("/html/body/div[3]/div/div/div[1]/div[1]/div[3]/form/div[5]/div[1]/input").send_keys(Keys.SPACE)
s.driver.ensure_element_by_xpath("/html/body/div[3]/div/div/div[1]/div[1]/div[3]/form/div[5]/div[2]/input").send_keys(Keys.SPACE)
s.driver.ensure_element_by_xpath("/html/body/div[3]/div/div/div[1]/div[1]/div[3]/form/div[6]/a").send_keys(Keys.ENTER)

如果想用headless模式,这个地方改一下:s = Session(headless=False,webdriver_path=ChromeDriverManager().install())

登录之后,获取cookies。
使用time.time()构造接口的后缀,不知道网页是怎么构造的,我随意乘以1000,测试后好使。就不深究细节了,能用就行。
而后可以直接携带cookies,访问构造的接口地址,也就是从XHR接口获取返回的数据。

time_pad=int(time.time()*1000)
jisilu_kzz_url=f'https://www.jisilu.cn/data/cbnew/cb_list_new/?___jsl=LST___t={time_pad}'

time.sleep(1)
s.cookies.clear()
s.transfer_driver_cookies_to_session()
res_text=s.post(jisilu_kzz_url).text

稍微加工一下返回的数据,工整的可转债表格数据就到手了。

res_text_row=(json.loads(res_text))['rows']
from pandas import json_normalize
res_df = json_normalize([x['cell'] for x in res_text_row], sep='_')
res_df.to_excel('all_talble_方法3.xlsx',index=False)

在这里插入图片描述
本方法中获取到的数据表格,和方法一、方法二获取的表格完全不同,数据信息更多,能够直接使用。

标签:cookies,res,driver,获取,jisilu,time,可转债,集思录,div
From: https://blog.csdn.net/weixin_44132287/article/details/144248129

相关文章

  • 深入解析Java注解机制:获取注解数据的原理
    深入解析Java注解机制:获取注解数据的原理引言在Java编程中,注解(Annotation)是一种元数据形式,它提供了关于程序代码的数据,但它们并不是程序本身的一部分。注解可以用于编译时或运行时处理,以提供额外的信息或者影响程序行为。本文将深入探讨如何解析Java中的注解,并介绍AnnotatedElem......
  • 【Spring 全家桶】 Spring IOC & DI 保姆式教学, 教你不用new也能获取到对象的依赖注入
    本篇会加入个人的所谓鱼式疯言❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言而是理解过并总结出来通俗易懂的大白话,小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的.......
  • 如何利用Java爬虫淘宝/天猫获取SKU详细信息数据
    在电商领域,获取商品SKU信息对于商家来说至关重要。通过Java爬虫技术,我们可以轻松获取淘宝和天猫平台上的SKU详细信息数据。本文将详细介绍如何利用Java爬虫技术实现这一目标,并提供代码示例。1.注册开放平台账号首先,您需要在淘宝开放平台注册一个开发者账号,并创建应用以获取......
  • 获取到的值不为空,存入对象属性时,报空指针错误
    publicTenantAccessTokentenantAccessToken;/***获取token*@return*/@OverridepublicTenantAccessTokengetTenantAccessToken(){if(tenantAccessToken==null||tenantAccessToken.getTenantAccessTok......
  • 写一个方法获取图片的方向
    functiongetImageOrientation(imageUrl,callback){constimg=newImage();img.onload=function(){constcanvas=document.createElement('canvas');constctx=canvas.getContext('2d');//设置canvas尺寸以适应图像canv......
  • 写一个方法获取图片的exif信息
    functiongetExifData(file){returnnewPromise((resolve,reject)=>{if(!file||!file.type.startsWith('image/')){reject(newError('Notavalidimagefile'));return;}constreader=newFileReader()......
  • shell——获取当前日期的shell脚本
    以下是几种获取当前日期的Shell脚本示例,并且会对其进行解释:示例一:简单获取当前日期(格式:年-月-日)#!/bin/bash#使用date命令获取当前日期,格式为年-月-日current_date=$(date+%Y-%m-%d)echo"当前日期是:$current_date"解释:#!/bin/bash:指定该脚本使用Bash作为解释器......
  • C# 使用反射进行类型信息的动态获取
    反射基础概念反射是指在运行时动态地获取程序集、模块、类型、成员(方法、属性、字段等)的相关信息,并且能够在运行时动态地调用类型的成员或创建类型的实例。在C#中,System.Reflection命名空间提供了进行反射操作的各种类和接口。获取类型信息获取当前程序集中的类型可以......
  • 红队/白帽必经之路(18)——如何用Metasploit 制作Windows恶意木马病毒/软件获取shell[
    上节回顾目录上节回顾1.模拟黑客给真正的快播软件加上后门先下载一个正常的快播软件可以下载绿色版本,免安装的快播软件上传到QvodTerminal.exe到kali上对QvodTerminal.exe注入payload后门程序使用绑定了后门的QvodTerminal.exe替换原来的QvodTerminal.e......
  • php毕业设计服装购物商城在线购物系统电商系统电子商城线上购物系统购物网站计算机毕
    一.功能介绍用户前台功能:    前台主要包括网站首页、商品推荐、全部商品、热门商品、商品分类、商品资讯、评论、登录、注册、加入购物车、结算、个人中心等功能模块商品推荐、最新商品在商品推荐、热门商品模块,用户可以查看全部商品信息,选择商品进行添加购物车等......