我想抓取网页的内容。内容是在该网站上的表格填写并提交后生成的。
我已阅读有关如何抓取最终结果内容/网页的信息 - 但如何以编程方式提交表单?
我正在使用 python 并已阅读我可能需要获取带有表单的原始网页,解析它,获取表单参数,然后执行 X?
谁能指出我正确的方向?
我想抓取网页的内容。内容是在该网站上的表格填写并提交后生成的。
我已阅读有关如何抓取最终结果内容/网页的信息 - 但如何以编程方式提交表单?
我正在使用 python 并已阅读我可能需要获取带有表单的原始网页,解析它,获取表单参数,然后执行 X?
谁能指出我正确的方向?
您需要生成一个包含表单数据的 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
使用python,我认为它需要以下步骤:
从一个类似的问题 - options-for-html-scraping - 你可以了解到使用 Python 你可以使用Beautiful Soup。
Beautiful Soup 是一个 Python HTML/XML 解析器,专为屏幕抓取等快速周转项目而设计。三个功能使其功能强大:
- 如果你给它错误的标记,Beautiful Soup 不会窒息。它会生成一个解析树,其意义与您的原始文档大致相同。这通常足以收集您需要的数据并逃跑。
- Beautiful Soup 提供了一些用于导航、搜索和修改解析树的简单方法和 Pythonic 习惯用法:用于剖析文档和提取所需内容的工具包。您不必为每个应用程序创建自定义解析器。
- Beautiful Soup 自动将传入文档转换为 Unicode,将传出文档自动转换为 UTF-8。您不必考虑编码,除非文档未指定编码并且 Beautiful Soup 无法自动检测编码。然后你只需要指定原始编码。
这个不寻常的名字引起了我们主持人的注意,2008 年 11 月 12 日。
你可以用javascript来做到这一点。如果表格是这样的:
<form name='myform' ...
然后你可以在javascript中做到这一点:
<script language="JavaScript">
function submitform()
{
document.myform.submit();
}
</script>
您可以使用链接或按钮的“onClick”属性来调用此代码。要在加载页面时自动调用它,请使用元素的“onLoad”属性:
<body onLoad="submitform()" ...>