开发者社区> auqbllxiu> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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>

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
ajax-hook+ selenium抓取带参数的 Ajax 数据
ajax-hook+ selenium抓取带参数的 Ajax 数据
15 0
ajax-hook+ selenium抓取带参数的 Ajax 数据
ajax-hook+ selenium抓取带参数的 Ajax 数据
10 0
Selenium系列(十六) - Web UI 自动化基础实战(3)
Selenium系列(十六) - Web UI 自动化基础实战(3)
43 0
Selenium系列(十四) - Web UI 自动化基础实战(1)
Selenium系列(十四) - Web UI 自动化基础实战(1)
63 0
Selenium系列(十五) - Web UI 自动化基础实战(2)
Selenium系列(十五) - Web UI 自动化基础实战(2)
35 0
Struts2+AJAX获取json数据
             昨天晚上遇到了一个bug,是ajax调用struts2里面的方法获取json的问题,虽然现在那个问题没有解决,但是各种百度后,发现对stuts2跟ajax的交互认识又深了。
1020 0
Mac OS下应用Python+Selenium实现web自动化测试
在Mac环境下的自动化测试环境搭建这里有一篇亲测通过的文《mac下怎么搭建selenium python环境?》。 不过在这个过程中要注意两点: 1.在终端联网执行命令“sudo pip install –U selenium”如果失败了的话,可以尝试用命令“sudo easy_install selenium”来安装selenium; 2.安装好PyCharm后新建project,Interpreter一定要选对,默认给出的两个可选项很有可能是不对的。
1466 0
jxl(java Excel Api)-apache POI(HSSF - XSSF - SXSSF) selenium数据源--Excel
Apache POI API 性能分析图: 资 本 在有些人眼里,他自己是一颗珍珠;在有些人眼里,他自己是一块石头。有的时候,人必须明白自己是普通的石头,而不是价值连城的珍珠。要出人头地问鼎成功,需要有出类拔萃的资本。资本有了,做事胜算也就大了
1745 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载