html表单到远程站点,获取单个结果并显示在我的页面中

时间:2016-12-02 16:38:18

标签: php jquery html css ajax

我的网站是 mysite.com ,需要使用html表单从其他网站获取内容并将结果返回到我的网站。表单不使用方法GET而是方法POST ...

我在智利警察网站来自我的网站创建了一个网页表格来查找被盗车辆。这是表格

<p id="u973-2">
         La patente consultada <span class="Estilo1">NO</span> presenta Encargo..    </p>

表单必须从

获取结果
<script src="//code.jquery.com/jquery-latest.js"></script> <!-- load jquery via CDN -->
<script>
   $(document).ready(function() {//start document ready
      $('#start').click(function (e){
        e.preventDefault();

        $.ajax({
        type: 'POST',
        url: 'http://consultawebvehiculos.carabineros.cl/index.php',
        data: $("#cdr-form").serialize(),
success: function(d){
   $(".result").html(d);
}
    });
  });
 });//end document ready
</script>

结果显示如下(在警察局)

div.col-*

这个结果我必须得到这个并显示在我的页面上,获取它。 我知道如何获取静态内容但是如何获取这种结果? 有什么想法吗?

我们至少有div ID名称,并且在此页面上始终使用相同的名称...

尝试使用AJAX

div.row

1 个答案:

答案 0 :(得分:0)

由于CORS问题,预计Ajax不起作用。

使用python

from mechanize import Browser

br = Browser()
br.open("http://consultawebvehiculos.carabineros.cl/index.php")
br.select_form(name="form1")

br["txtLetras"] = ''
br["txtNumeros1"] = ''
br["txtNumeros2"] = ''

response = br.submit()

# The following gives you full html response
print response.read()

# The following gives you short response info
print response.info()

使用response.info()测试脚本时的示例响应信息:

Date: Fri, 02 Dec 2016 17:04:06 GMT
Server: Apache/2.2.0 (Unix) PHP/5.1.2
X-Powered-By: PHP/5.1.2
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html
Content-type: text/html;charset=UTF-8

好读:http://wwwsearch.sourceforge.net/mechanize/doc.html

我个人最喜欢的是Scrapy,它可以做很多很酷的事情!

使用PHP

<?php

$url = 'http://consultawebvehiculos.carabineros.cl/index.php';

$fields = array(
  'txtLetras' => '',
  'txtNumeros1' => '',
  'txtNumeros2' => '',
);

$fields_string = '';

foreach($fields as $key=>$value) { 
  $fields_string .= $key.'='.$value.'&'; 
}

rtrim($fields_string, '&');
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);

//execute post
$result = curl_exec($ch);
print $result;

//close connection
curl_close($ch);

参考:https://davidwalsh.name/curl-post