我想抓一个网页的内容。在填写并提交该网站上的表格后生成内容。
我已经阅读了如何抓取最终结果内容/网页 - 但如何以编程方式提交表单?
我正在使用python并且读过我可能需要获取带有表单的原始网页,解析它,获取表单参数然后执行X?
有人能指出我的方向吗?
答案 0 :(得分:2)
您需要生成包含表单数据的HTTP请求。
表单看起来像:
<form action="submit.php" method="POST"> ... </form>
这告诉您要求的网址是www.example.com/submit.php,您的请求应该是POST。
在表单中将有几个输入项,例如:
<input type="text" name="itemnumber"> ... </input>
您需要创建一个字符串,其中包含为附加到您请求的URL末尾的URL编码的所有这些输入名称=值对,现在变为 www.example.com/submit.php?itemnumber=5234&otherinput=othervalue等... 这适用于GET。 POST有点棘手。
</motivation>
只需按照S.Lott的链接获取更容易使用的库支持:P
答案 1 :(得分:2)
使用python,我认为它需要执行以下步骤:
this explains form elements in html file
答案 2 :(得分:2)
从类似问题 - options-for-html-scraping - 您可以了解到使用Python,您可以使用Beautiful Soup。
Beautiful Soup是一个Python HTML / XML解析器,专为快速周转项目而设计,例如屏幕抓取。三个功能使它变得强大:
- 如果给你不好的标记,美丽的汤不会窒息。它产生一个解析树,使其与原始文档几乎一样有意义。这通常足以收集您需要的数据并逃跑。
- Beautiful Soup提供了一些简单的方法和Pythonic习语,用于导航,搜索和修改解析树:用于剖析文档和提取所需内容的工具包。您不必为每个应用程序创建自定义解析器。
- Beautiful Soup会自动将传入的文档转换为Unicode,将传出的文档转换为UTF-8。您不必考虑编码,除非文档没有指定编码并且Beautiful Soup不能自动检测编码。然后你只需要指定原始编码。
醇>
不寻常的名字caught the attention of our host,2008年11月12日。
答案 3 :(得分:-1)
你可以用javascript做到这一点。如果表格如下:
<form name='myform' ...
然后你可以在javascript中执行此操作:
<script language="JavaScript">
function submitform()
{
document.myform.submit();
}
</script>
您可以使用链接或按钮的“onClick”属性来调用此代码。要在加载页面时自动调用它,请使用元素的“onLoad”属性:
<body onLoad="submitform()" ...>