Javascript 如何直接从我的计算机自动发送http请求

Javascript 如何直接从我的计算机自动发送http请求,javascript,python,html,http,Javascript,Python,Html,Http,我想在没有登录到会话的情况下自动登录到网页,通过搜索栏搜索内容,并从结果列表中加载上一个搜索结果的HTML。有人对如何做到这一点有什么指导吗 与谷歌等网站不同,最终url在搜索后不会改变。搜索栏似乎发送了一个关于搜索请求的表单,并更改了网页的内部html,而没有更改标题url,这使得事情变得更加困难 如果你想知道这是为了什么,我正在做一些网页抓取 我尝试制作一个HTML,自动提交一个表单,模仿登录页面和搜索栏的形式: <body onload="document.frm1.submit()

我想在没有登录到会话的情况下自动登录到网页,通过搜索栏搜索内容,并从结果列表中加载上一个搜索结果的HTML。有人对如何做到这一点有什么指导吗

与谷歌等网站不同,最终url在搜索后不会改变。搜索栏似乎发送了一个关于搜索请求的表单,并更改了网页的内部html,而没有更改标题url,这使得事情变得更加困难

如果你想知道这是为了什么,我正在做一些网页抓取

我尝试制作一个HTML,自动提交一个表单,模仿登录页面和搜索栏的形式:

<body onload="document.frm1.submit()">
  <form action="http://XXXXX.com/login" name="frm1">
    <input type="text" name="username" value="Smith" />
    <input type="password" name="password" value="12345" />
  </form>
</body>

它起作用了。然而,当网页的HTML非常复杂时,它变得非常复杂。现在我只是根据我在F12中看到的HTML来模拟它。此外,此方法不允许动作链。登录后,我无法搜索项目。而且这个页面似乎不存储会话,因为当我打开一个新标签时,我必须再次登录,但我不是很确定

我试图通过浏览器的inspect elements>>networks功能直接查看http标头。但我仍然没有弄清楚如何使用那里的信息

我也尝试了selenium(python),但它的sendkeys函数非常慢,尤其是当我只能使用Internet Explorer时(每个字符几秒钟!)。即使我使用selenium,我也不知道为什么,但网页中的一些按钮无法点击

对于第二部分(获取html),我还没有做得很好,但我想我只会使用标准库,比如BeautifulSoup

有几个网站我需要工作。其中之一是

更新: 我尝试从chrome>>insepct elemenets>>网络复制表单数据,并使用python库请求发送表单。但是,它返回以下内容:

<html lang="en-US">
<head>
<script language="javascript" type="text/javascript">
if (window['AdfPage'] && AdfPage.PAGE && AdfPage.PAGE.__getSessionTimeoutHelper())
        AdfPage.PAGE.__getSessionTimeoutHelper().__alertTimeout();
else {
        alert('Because of inactivity, your session has timed out and is no longer active.  Click OK to reload the page.');
        window.location.replace(window.location.href);}
</script>
</head></html>

如果(窗口['AdfPage']&&AdfPage.PAGE&&AdfPage.PAGE.\uu getSessionTimeoutHelper())
AdfPage.PAGE.\uuu getSessionTimeoutHelper()。\uuu alertTimeout();
否则{
警报('由于不活动,您的会话已超时且不再处于活动状态。单击“确定”重新加载页面');
window.location.replace(window.location.href);}

这很奇怪。如果我从浏览器手动提交表单,它将显示搜索结果

这个问题没有一般的答案,这取决于网站的具体情况。它可能使用AJAX而不是提交表单。。。或者登录可能包含您丢失的隐藏字段(使用Google开发者工具进行检查)。登录也可能返回您在以后的通话中无法传递的cookies。对此没有一般性的答案,这取决于网站的具体情况。它可能使用AJAX而不是提交表单。。。或者登录可能包含您丢失的隐藏字段(使用Google开发者工具进行检查)。登录还可能返回您在以后的通话中未能传递的cookies。