3

我想抓取网页的内容。内容是在该网站上的表格填写并提交后生成的。

我已阅读有关如何抓取最终结果内容/网页的信息 - 但如何以编程方式提交表单?

我正在使用 python 并已阅读我可能需要获取带有表单的原始网页,解析它,获取表单参数,然后执行 X?

谁能指出我正确的方向?

4

4 回答 4

2

您需要生成一个包含表单数据的 HTTP 请求。

表单将类似于:

<form action="submit.php" method="POST"> ... </form>

这告诉您请求的 url 是 www.example.com/submit.php 并且您的请求应该是 POST。

在表单中会有几个输入项,例如:

<input type="text" name="itemnumber"> ... </input>

您需要为附加到您请求的 URL 末尾的 URL 创建所有这些输入名称 = 值对的字符串,该 URL 现在变为 www.example.com/submit.php?itemnumber=5234&otherinput=othervalue 等...对于 GET 可以正常工作。POST 有点棘手。

</motivation>

只需按照 S.Lott 的链接获取一些更易于使用的库支持:P

于 2008-12-26T13:25:55.383 回答
2

使用python,我认为它需要以下步骤:

  1. 解析包含表单的网页,找出表单提交地址和提交方法(“post”或“get”)。

这解释了 html 文件中的表单元素

  1. 使用 urllib2 提交表单。您可能需要一些函数,如 urllib 中的“urlencode”、“quote”来为 post 方法生成 url 和数据。阅读图书馆文档了解详情。
于 2008-12-26T13:29:29.573 回答
2

从一个类似的问题 - options-for-html-scraping - 你可以了解到使用 Python 你可以使用Beautiful Soup

Beautiful Soup 是一个 Python HTML/XML 解析器,专为屏幕抓取等快速周转项目而设计。三个功能使其功能强大:

  1. 如果你给它错误的标记,Beautiful Soup 不会窒息。它会生成一个解析树,其意义与您的原始文档大致相同。这通常足以收集您需要的数据并逃跑。
  2. Beautiful Soup 提供了一些用于导航、搜索和修改解析树的简单方法和 Pythonic 习惯用法:用于剖析文档和提取所需内容的工具包。您不必为每个应用程序创建自定义解析器。
  3. Beautiful Soup 自动将传入文档转换为 Unicode,将传出文档自动转换为 UTF-8。您不必考虑编码,除非文档未指定编码并且 Beautiful Soup 无法自动检测编码。然后你只需要指定原始编码。

这个不寻常的名字引起了我们主持人的注意,2008 年 11 月 12 日。

于 2008-12-26T13:45:29.417 回答
-1

你可以用javascript来做到这一点。如果表格是这样的:

<form name='myform' ...

然后你可以在javascript中做到这一点:

<script language="JavaScript">
function submitform()
{
document.myform.submit();
}
</script> 

您可以使用链接或按钮的“onClick”属性来调用此代码。要在加载页面时自动调用它,请使用元素的“onLoad”属性:

<body onLoad="submitform()" ...>
于 2008-12-26T13:10:50.190 回答