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('https://dynamic2.scrape.center/';)
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>
目录
相关文章
|
弹性计算 数据安全/隐私保护
雾锁王国/Enshrouded服务器搭建全攻略:2024年最新版步骤详解
随着游戏行业的不断发展,玩家们对于游戏体验的要求也越来越高。为了满足玩家们的需求,阿里云提供了游戏联机服务器一键部署方案,本文将为大家分享基于阿里云服务器10秒钟完成雾锁王国游戏服务器搭建教程,让大家的游戏体验更加顺畅。
|
12月前
|
人工智能 文字识别 API
|
11月前
|
人工智能 文字识别 算法框架/工具
《探索鸿蒙Next上人工智能图像编辑应用的技术路径》
在鸿蒙Next系统的支持下,AI图像编辑应用迎来新机遇。开发者可利用系统原生AI能力(如智能识别、OCR文字识别与抠图),集成第三方AI框架(如TensorFlow、PyTorch),运用分布式技术实现多设备协同编辑,并采用微内核架构和原子化服务提升安全性和用户体验。此外,优化用户交互设计,提供简洁直观的操作界面,确保应用高效稳定运行。
444 21
|
12月前
|
SQL 存储 运维
从建模到运维:联犀如何完美融入时序数据库 TDengine 实现物联网数据流畅管理
本篇文章是“2024,我想和 TDengine 谈谈”征文活动的三等奖作品。文章从一个具体的业务场景出发,分析了企业在面对海量时序数据时的挑战,并提出了利用 TDengine 高效处理和存储数据的方法,帮助企业解决在数据采集、存储、分析等方面的痛点。通过这篇文章,作者不仅展示了自己对数据处理技术的理解,还进一步阐释了时序数据库在行业中的潜力与应用价值,为读者提供了很多实际的操作思路和技术选型的参考。
366 1
软件著作权申请流程及费用_快速登记_软著材料及常见问题解答FAQ
阿里云软件著作权申请涉及账号注册、实名认证和选择服务。在阿里云官网注册账号,通过实名认证后,选择登记服务,如普通359.1元/件或加急1080元/件。在线填报申请表,阿里云初审后授权提交,打印申请表并邮寄材料。版权中心审查后,通过则领取证书,未通过需补正。整个过程约20天。详细步骤见阿里云百科相关教程。
630 3
|
数据采集 机器学习/深度学习 数据可视化
Pandas在数据分析中有广泛的应用场景
Pandas是数据分析利器,适用于数据清洗(处理缺失值、重复项、异常值)、探索分析(统计量、图表)、预处理(特征提取、编码、选择)、建模(线性回归、聚类等)及可视化,与Matplotlib等库配合提升效率。
358 1
|
XML 测试技术 Linux
技术笔记:sipp重放rtp数据测试FreeSWITCH
技术笔记:sipp重放rtp数据测试FreeSWITCH
如何解决由引起的IQKeyboardManager部分页面返回的键盘高度比实际小或最后收到键盘隐藏通知却显示了键盘问题
如何解决由引起的IQKeyboardManager部分页面返回的键盘高度比实际小或最后收到键盘隐藏通知却显示了键盘问题
339 0
|
Linux iOS开发 开发者
Windows、Linux 和 macOS 操作系统:操作系统大比较
Windows、Linux 和 macOS 操作系统:操作系统大比较
785 0
二进制,八进制,十进制,十六进制的相互转换【简单易懂】(含代码模板)
二进制,八进制,十进制,十六进制的相互转换【简单易懂】(含代码模板)
752 0
二进制,八进制,十进制,十六进制的相互转换【简单易懂】(含代码模板)