Javascript 编写一个程序,在其他一些';s的网站,这是不可能的吗?
通常,我会在浏览器中打开其他人的网站,比如google.com,在搜索框中键入内容,然后单击搜索 是否不可能编写一个程序来完成这项工作,并在结果页面上查找某些内容,而不是手动完成 我尝试了javascript,但似乎没有办法绕过同一来源限制 PS:不仅仅是搜索,也许我还需要输入用户名、密码和登录名。 除了javascript,我还使用C#。是的,您可以在C#(winforms)中完成这项工作。首先,您需要创建Internet explorer浏览器的实例,然后初始化其参数,如大小、位置、URL(www.google.com)等。URL指定应加载到IE浏览器中的网站 在此之后,您需要创建一个函数来处理网站(www.google.com)中的控件。确保此函数仅在网站关闭后调用 已完全加载。您可以为此使用事件处理程序 源代码:-Javascript 编写一个程序,在其他一些';s的网站,这是不可能的吗?,javascript,c#,python,cross-domain,same-origin-policy,Javascript,C#,Python,Cross Domain,Same Origin Policy,通常,我会在浏览器中打开其他人的网站,比如google.com,在搜索框中键入内容,然后单击搜索 是否不可能编写一个程序来完成这项工作,并在结果页面上查找某些内容,而不是手动完成 我尝试了javascript,但似乎没有办法绕过同一来源限制 PS:不仅仅是搜索,也许我还需要输入用户名、密码和登录名。 除了javascript,我还使用C#。是的,您可以在C#(winforms)中完成这项工作。首先,您需要创建Internet explorer浏览器的实例,然后初始化其参数,如大小、位置、URL(
创建浏览器实例
this.webBrowser1 = new System.Windows.Forms.WebBrowser();
初始化浏览器参数
this.webBrowser1.Dock = System.Windows.Forms.DockStyle.Fill;
this.webBrowser1.Location = new System.Drawing.Point(0, 0);
this.webBrowser1.MinimumSize = new System.Drawing.Size(20, 20);
this.webBrowser1.Name = "webBrowser1";
this.webBrowser1.Size = new System.Drawing.Size(903, 448);
this.webBrowser1.TabIndex = 0;
// specify your url here
this.webBrowser1.Url = new System.Uri("www.google.com", System.UriKind.Absolute);
创建事件处理程序
this.webBrowser1.DocumentCompleted += new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler(this.webBrowser1_DocumentCompleted);
处理网站中的控件:
//sets user name text box to ganesh
webBrowser1.Document.All.GetElementsByName("username")[0].SetAttribute("Value", "ganesh");
真正做到这一点的唯一方法是使用代理服务器,但您可以使用javascript和node轻松创建一个代理服务器:
var http = require('http');
http.createServer(onRequest).listen(3000);
function onRequest(client_req, client_res) {
console.log('serve: ' + client_req.url);
var options = {
hostname: 'www.google.com',
port: 80,
path: client_req.url,
method: 'GET'
};
var proxy = http.request(options, function (res) {
res.pipe(client_res, {
end: true
});
});
client_req.pipe(proxy, {
end: true
});
}
上述代码将返回谷歌的主页。由于您自己的本地服务器正在返回页面,因此您不必再担心跨域问题,可以随意使用数据。这只是供您个人使用吗?你可能想看看浏览器扩展。也许你可以写入url…使用tampermonkey和greasemonkey。为此,我强烈建议你使用winforms(visual studio)中的webbrowser控件。