gpt4 book ai didi

javascript - Greasemonkey:转发整页内容

转载 作者:行者123 更新时间:2023-11-30 12:38:08 25 4
gpt4 key购买 nike

是否可以在文档加载准备就绪后选择完整页面内容并将其通过 ajax post 发送到另一台服务器?

我正在尝试对此进行测试,我启动了两个 php 服务器:

localhost:9000 :这个将接收从 Greasemonkey 的脚本发送的数据并将其保存到文件中。测试代码:

index.php

<?php
if (isset($_POST) && count($_POST) > 0) {
file_put_contents("SOMETHING_AND_IT_IS_POST.txt","");
$data = var_export($_POST);
file_put_contents("POSTED.txt",$data);
} else {
file_put_contents("SOMETHING_BUT_NO_POST.txt",$data);
}

localhost:9001 : 模仿数据源,仅托管一个html文件

post.html

<html>
<head>

</head>

<body>
<p>Test</p>
<div>
<p> should work</p>
</div>
<!--<form action="" method="post">
<p>Is commenting ok?</p>
First name: <input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br>
<input type="submit" value="Submit">
</form> -->
</body>
</html>

Greasemonkey 脚本:

// ==UserScript==
// @name testajax
// @namespace test
// @include http://localhost:9001/post.html
// @version 1
// @grant none
// @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js
// ==/UserScript==

$( document ).ready(function() {
console.log( "Loaded!" );

GM_xmlhttpRequest({
method: "POST",
url: "http://localhost:9000/index.php",
data: $("body").html(),
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
onload: function(response) {
alert("POSTED!");
}
});
});

因此,在浏览器中,我打开 http://localhost:9001/post.html,GM 脚本启动,console.log 正常,但是 localhost:9000/index.php 没有收到任何东西。

最佳答案

好吧,所以这不是解决上述问题的方法,更像是一种更好的方法。

我尝试使用 greasemonkey 进行自动化,这就是它尝试将数据发送到另一个地方的原因。有一个工具可以执行此操作,称为 casperJS(构建在 PhantomJS 上,也需要运行它)。基本上,您可以编写 JavaScript,在站点中导航,选择您想要的数据并使用 casperjs 的 ajax util 发布它。所有这些都得到了很好的记录。

casperjs.org

casper ajax

Tutorial: Automating & Scraping with PhantomJS and CasperJS by Chris Hawkes

关于javascript - Greasemonkey:转发整页内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25406672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com