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>
目录
相关文章
|
Web App开发 前端开发 IDE
Airtest-Selenium实操小课①:爬取新榜数据
Airtest-Selenium实操小课①:爬取新榜数据
253 0
|
数据采集 存储 JavaScript
自动化数据处理:使用Selenium与Excel打造的数据爬取管道
本文介绍了一种使用Selenium和Excel结合代理IP技术从WIPO品牌数据库(branddb.wipo.int)自动化爬取专利信息的方法。通过Selenium模拟用户操作,处理JavaScript动态加载页面,利用代理IP避免IP封禁,确保数据爬取稳定性和隐私性。爬取的数据将存储在Excel中,便于后续分析。此外,文章还详细介绍了Selenium的基本设置、代理IP配置及使用技巧,并探讨了未来可能采用的更多防反爬策略,以提升爬虫效率和稳定性。
747 4
|
10月前
|
算法 机器人 Python
使用Selenium和ChromeDriver模拟用户操作:从表单填写到数据提交
简介:工程师小王和产品经理莉莉面临无人机市场调研投票数据获取难题,传统方法屡遭封禁。小王通过构建“隐身特工”装备——代理IP、随机UserAgent及有效Cookie,结合Python与Selenium技术,成功绕过问卷星的防刷票系统,实现自动化投票。最终,他们获得了看似真人投票的数据,展示了技术攻防的艺术。这段故事不仅是一场技术较量,更是对算法规则游戏的深刻思考。
241 2
使用Selenium和ChromeDriver模拟用户操作:从表单填写到数据提交
|
Web App开发 自然语言处理 数据可视化
Selenium36万条数据告诉你:网易云音乐热评究竟有什么规律?
Selenium36万条数据告诉你:网易云音乐热评究竟有什么规律?
220 4
Selenium36万条数据告诉你:网易云音乐热评究竟有什么规律?
|
数据采集 Python
如何用Python Selenium和WebDriver抓取LinkedIn数据并保存登录状态
本文介绍了使用Python Selenium和WebDriver库抓取LinkedIn数据的方法。首先,安装Selenium库和对应的WebDriver,然后配置爬虫代理IP以避免频繁请求被检测。接下来,设置user-agent和cookies以模拟真实用户行为,实现登录并保持状态。登录后,使用WebDriver抓取目标页面数据,如用户名、年龄、性别和简历信息。最后,强调了优化代码、处理异常和遵守使用条款的重要性,以提高效率并避免账号被封禁。
564 2
如何用Python Selenium和WebDriver抓取LinkedIn数据并保存登录状态
|
数据采集 Web App开发 数据处理
一步步教你用Python Selenium抓取动态网页任意行数据
使用Python Selenium爬取动态网页,结合代理IP提升抓取效率。安装Selenium,配置代理(如亿牛云),设置User-Agent和Cookies以模拟用户行为。示例代码展示如何使用XPath提取表格数据,处理异常,并通过隐式等待确保页面加载完成。代理、模拟浏览器行为和正确配置增强爬虫性能和成功率。
2056 3
一步步教你用Python Selenium抓取动态网页任意行数据
|
数据采集 JavaScript 测试技术
Python爬虫通过selenium自动化抓取淘宝的商品数据
淘宝的页面大量使用了js加载数据,所以采用selenium来进行爬取更为简单,selenum作为一个测试工具,主要配合无窗口浏览器phantomjs来使用。
1240 0
|
Web App开发 数据采集 JavaScript
【Python爬虫】<万物可爬>Selenium+自动化测试工具 获取数据
【1月更文挑战第22天】【Python爬虫】<万物可爬>Selenium+自动化测试工具 获取数据
|
数据采集 中间件 Python
Scrapy框架 -- 结合selenium获取动态加载数据
Scrapy框架 -- 结合selenium获取动态加载数据
197 0
|
数据采集 中间件 Python
Scrapy框架 -- 结合selenium获取动态加载数据
Scrapy框架 -- 结合selenium获取动态加载数据
189 0