ajax-hook+ selenium抓取带参数的 Ajax 数据

简介: ajax-hook+ selenium抓取带参数的 Ajax 数据

环境

依赖安装

pip install flask-cors flask selenium

安装chromedriver

mac下安装selenium+phantomjs+chromedriver

实现代码

1、hook.js

监听 XMLHttpRequest 请求

// 打开链接,复制代码到这里

// https://unpkg.com/ajax-hook@;2.0.3/dist/ajaxhook.min.js
// https://unpkg.com/axios/dist/axios.min.js


ah.proxy({
//请求成功后进入
onResponse: (response, handler) => {
if (response.config.url.startsWith('/api/movie')) {
axios.post('http://localhost:5000/receiver/movie', {
url: window.location.href,
data: response.response
})
console.log(response.response)
handler.next(response)
}
}
})

2、main.py

驱动chrome

# -- coding: utf-8 --
from selenium import webdriver
import time

browser = webdriver.Chrome()
browser.get
browser.execute_script(open('hook.js').read())
time.sleep(2)

for index in range(3):
print('current page', index)
btn_next = browser.find_element_by_css_selector('.btn-next')
btn_next.click()
time.sleep(2)

browser.close()
browser.quit()

3、server.py

接收数据的服务,可以进一步将数据存入数据库

# -- coding: utf-8 --
import json
from flask import Flask, request, jsonify
from flask_cors import CORS

app = Flask(__name__)
CORS(app)


@app.route('/receiver/movie', methods=['POST'])
def receive():
content = json.loads(request.data)
print(content)
# to something
return jsonify({'status': True})


if name == '__main__':
app.run(host='0.0.0.0', port=5000, debug=True)

参考

如何用 Hook 实时处理和保存 Ajax 数据

            </div>
目录
相关文章
|
机器学习/深度学习 计算机视觉
【YOLOv8改进】CoordAttention: 用于移动端的高效坐标注意力机制 (论文笔记+引入代码)
该专栏聚焦YOLO目标检测的创新改进与实战,介绍了一种新的移动网络注意力机制——坐标注意力。它将位置信息融入通道注意力,通过1D特征编码处理,捕获长距离依赖并保持位置精度。生成的注意力图能增强目标表示,适用于MobileNetV2、MobileNeXt和EfficientNet等网络,提高性能,且几乎不增加计算成本。在ImageNet分类和下游任务(目标检测、语义分割)中表现出色。YOLOv8中引入了CoordAtt模块,实现位置敏感的注意力。更多详情及配置见相关链接。
|
JavaScript 前端开发 Java
|
SpringCloudAlibaba 容灾 关系型数据库
nacos常见问题之启动报错如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
2537 2
|
Java 关系型数据库 数据库连接
Idea使用Mybatis Generator 自动生成代码
(1)创建一个maven工程 (2)配置pom文件 mysql mysql-connector-java 5.
3234 0
|
JavaScript API UED
Vue3使用触摸滑动插件(Swiper)
本文介绍如何在Vue2项目中使用Swiper插件实现触摸滑动功能,并封装了两种轮播图展示形式:首页轮播图(`type: banner`)和走马灯轮播图(`type: carousel`),以及信息展播模式(`type: broadcast`)。支持自定义轮播图片、区域尺寸、动画效果等属性。通过示例代码展示了不同切换动画及自定义效果,并提供了在线预览。适用于多种应用场景,提升用户体验。
862 1
Vue3使用触摸滑动插件(Swiper)
|
数据库管理 OceanBase
OceanBase社区版可以商用吗
OceanBase社区版可以商用吗
531 1
|
编解码 前端开发 JavaScript
前端框架与库 - Bootstrap响应式设计
【7月更文挑战第19天】Bootstrap是流行的前端框架,以其响应式设计和组件库闻名。响应式设计确保网站在不同设备上显示良好。关键包括:**网格系统**,基于12列布局,适应屏幕尺寸;和**媒体查询**,用于根据设备特性应用样式。开发者常遇到的问题有:网格列超过12、忽视断点和自定义样式冲突。解决方法涉及正确使用断点类、测试多设备及清晰注释代码。借助官方文档和实践,可有效掌握响应式设计。
268 1
|
监控 Java 测试技术
性能测试:主流压测工具介绍
**性能压测工具摘要:** - Apache AB:命令行基准测试工具,简单轻量,用于评估服务器性能。 - Apache JMeter:开源Java框架,支持多种协议,适合复杂负载测试,提供丰富的图表和报告。 - nGrinder:开源,提供直观界面,支持分布式测试,录制回放脚本,实时监控。 - Locust:Python基础,适用于HTTP/WebSocket测试,可扩展,实时监控。 - LoadRunner:Micro Focus的商业工具,广泛支持多种协议,功能强大。
|
搜索推荐
8个邮件营销平台分析及对比
本文对比了8个热门邮件营销平台:Aoksend适合初创企业,Constant Contact用户友好,Sendinblue提供多元营销服务,GetResponse功能全面,蜂邮EDM适合大规模活动,MailerLite价格实惠,Campaign Monitor专业定制,ActiveCampaign侧重营销自动化。选择时应考虑自身需求和预算。
|
Linux 开发工具 git
IntelliJ IDEA配置git工作效率翻倍
IntelliJ IDEA 是一个强大的集成开发环境,用于编程语言如 Java、Kotlin、Scala 和其他多种语言。Git 是一个开源的分布式版本控制系统,用于追踪项目过程中的代码变更。
1080 0
IntelliJ IDEA配置git工作效率翻倍