如何使用php提交html页面的表单

时间:2012-05-05 09:39:42

标签: php forms web-scraping

我需要知道是否可以加载html页面并使用php在此页面内提交表单。所以像:

<?php
   $html = fopen("http://www.mysite.com","r");
   //get position of form...
   ...
   //submit it 
?>

可能吗?有人能帮我吗?感谢!!!

编辑:

我必须提交此表格

https://annunci.ebay.it/pubblica-annuncio

我的问题是,在这个页面上有一个图片上传,我不知道如何使用PHP(抓它)

5 个答案:

答案 0 :(得分:3)

您还可以使用curl发布到任何网址,例如表单的操作网址。

$ch = curl_init('http://example.com/form_action.php');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array('your' => 'data', 'goes' => 'here');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);

这会调用网址http://example.com/form_action.php,就好像是从表格中调用了网址{&#39;设定价值&#39;数据&#39;并且&#39;去&#39;设置为值&#39; here&#39;。

要查找POST所需的URL,您可以检查源代码。这样做时,请检查&#34; name&#34;您要发送的<input>代码的属性。

编辑:如果POST网址和字段可以更改,您应该检查@Adan's answer

答案 1 :(得分:1)

基本上这就是你需要做的事情

1-使用file_get_contents()获取HTML页面的内容(牢记安全风险)
2-使用DOMDocument解析HTML 3-使用ACTION获取表单的属性,最重要的是(METHODDOMDocument) 4-使用DOMDocument获取表单的字段名称 5-然后使用方法ACTIONMETHOD网址发送包含您想要的数据的请求,使用cURL替换字段

答案 2 :(得分:1)

你可以使用curl在php中获取页面。正如回答@Lumbendil所述。要解析HTML,您可以使用像

这样的库

http://simplehtmldom.sourceforge.net/

或者您可以使用

http://code.google.com/p/phpquery/

答案 3 :(得分:0)

作为另一个更干净的选项,您可以使用eBay API。它提供了添加新项目的方法,它可能已经为php构建了库,例如PHP Accelerator toolkit for eBay

答案 4 :(得分:0)

我提供了一个我从网上获取的代码来获取页面的内容。之后,您可以使用jquery(可能)强制提交函数。

$url = "URL OF YOUR PAGE"; // I have tested page from same server
$lines = file( $url );
foreach( $lines as $line_num => $line ) {
    $line = htmlspecialchars( $line );
    $line = str_replace( "&lt;", '<span>&lt;', $line );
    $line = str_replace( "&gt;", '&gt;</span>', $line );
    $line = str_replace( "&lt;!–", '<em>&lt;!–', $line );
    $line = str_replace( "–&gt;", '–&gt;</em>', $line );
    echo "<span class=\"linenumber\">Line <strong>$line_num </strong></span> : " . $line . "<br/>\n";
}

上面的代码从同一服务器上的另一个页面给了我内容。现在你必须找到一种方法来检查表格是否存在然后;强制提交该表格。