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

时间:2019-08-15 01:51:04

标签: javascript python html http

我想不登录会话就自动登录网页,通过其搜索栏搜索内容,并从结果列表中加载最后一个搜索结果的HTML。有人对如何执行此操作有任何指示吗?

与Google之类的网站不同,搜索后的最终URL不会更改。似乎搜索栏发送了有关搜索请求的表格,并更改了网页的内部html,而没有更改标题url,这使事情变得更加困难

如果您想知道这是干什么的,我正在做一些网页抓取工作。

我尝试制作一个HTML,该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的内容尝试模仿它。同样,此方法不允许操作链。登录后,我将无法搜索项目。而且该页面似乎不存储会话,因为当我打开一个新选项卡时,我必须再次登录,但是我不太确定。

我试图直接通过浏览器的检查元素>>网络功能查看http标头。但是我仍然没有弄清楚到底如何使用那里的信息。

我也尝试了硒(python),但是它的sendkeys功能太慢了,特别是当我只能使用Internet Explorer时(每个字符几秒钟!)。即使我使用硒,我也不知道为什么,但是网页中的某些按钮无法单击。

对于第二部分(获取html),我也没有做,但是我想我只会使用BeautifulSoup之类的标准库?

我需要处理一些网站。其中之一是https://www.mdsystem.com

更新: 我尝试从chrome >> insepct elemenets >> networks复制表单数据,并使用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>

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

0 个答案:

没有答案