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>
目录
相关文章
|
3月前
|
XML JSON 前端开发
Ajax的使用方法
Ajax的使用方法
13 0
|
5月前
|
JSON 前端开发 JavaScript
jQuery Ajax请求成功后,为什么一直在error函数里
jQuery Ajax请求成功后,为什么一直在error函数里
|
8月前
|
前端开发 JavaScript
JavaScript 使用axios工具包发送Ajax请求
JavaScript 使用axios工具包发送Ajax请求
51 0
|
8月前
|
小程序 前端开发
|
9月前
|
前端开发 JavaScript Java
我们都遇到过的这些ajax代码到底什么意思?
我们都遇到过的这些ajax代码到底什么意思?
|
前端开发 UED 开发者
如何使用 Ajax?
Ajax 可以使Web应用更加迅捷动态化
76 0
|
Web App开发 前端开发 API
ajax-hook+ selenium抓取带参数的 Ajax 数据
ajax-hook+ selenium抓取带参数的 Ajax 数据
99 0
|
前端开发
ajax调用
ajax调用
60 0
|
前端开发 JavaScript Java
JS中一个方法同时发送两个ajax请求出现报错问题的解决方法
JS中一个方法同时发送两个ajax请求出现报错问题的解决方法
252 0
JS中一个方法同时发送两个ajax请求出现报错问题的解决方法
|
Web App开发 缓存 前端开发
Ajax-基本使用方法
Ajax-基本使用方法
110 9
Ajax-基本使用方法