Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在使用简单的HTML Dom解析器进行解析之前,如何登录Web表单网站? 以下是我试图实现的目标:_Php_Curl_Simple Html Dom - Fatal编程技术网

Php 在使用简单的HTML Dom解析器进行解析之前,如何登录Web表单网站? 以下是我试图实现的目标:

Php 在使用简单的HTML Dom解析器进行解析之前,如何登录Web表单网站? 以下是我试图实现的目标:,php,curl,simple-html-dom,Php,Curl,Simple Html Dom,我需要从这个网站刮产品数据,但价格是不同的,当你登录。因此,我需要提交这个登录表单(通过php),然后使用它来获取产品数据 我发现了以下类似的帖子: 但是,没有一个答案允许我在登录以下站点时登录并继续刮取: 我试过的 尝试#1 上述两次尝试(似乎)都没有结果。该页面仅显示登录表单。。。我无法判断登录尝试是否失败,或者是否需要(在cURL POST之后)添加$html=file\u get\u html(“http://www.bestlinknetware.com/");并开

我需要从这个网站刮产品数据,但价格是不同的,当你登录。因此,我需要提交这个登录表单(通过php),然后使用它来获取产品数据

我发现了以下类似的帖子:
但是,没有一个答案允许我在登录以下站点时登录并继续刮取:

我试过的 尝试#1

上述两次尝试(似乎)都没有结果。该页面仅显示登录表单。。。我无法判断登录尝试是否失败,或者是否需要(在cURL POST之后)添加
$html=file\u get\u html(“http://www.bestlinknetware.com/");并开始解析

注意:当我简单地添加
$html=file\u Get\u html(“…”)
脚本时,我可以刮取站点,但我会得到常规(未登录)价格

任何有使用简单HTML DOM Parser经验的人都能告诉我们如何像这样将POST数据提交到登录表单中,然后将POST登录HTML加载到简单HTML DOM Parser对象中(以便我可以将其删除)?

试试这个

include('simple_html_dom.php');
$context = stream_context_create(array('http' => array('header' => 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.60 Safari/537.17')));
$html = str_get_html( file_get_contents('http://page.com/user1', false, $context) );
$url = "https://www.bestlinknetware.com/Account/LogOn"; 
$cookie="cookie.txt"; 

$data = array(
  "UserName" => "ourValidUsername",
  "Password" => "ourValidPassword"
);

$postData = http_build_query($data);

$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/4");
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt ($ch, CURLOPT_REFERER, $url);

curl_setopt ($ch, CURLOPT_POST, 2);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postData);
$result = curl_exec ($ch);

echo $result;  
curl_close($ch);
include('simple_html_dom.php');
$context = stream_context_create(array('http' => array('header' => 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.60 Safari/537.17')));
$html = str_get_html( file_get_contents('http://page.com/user1', false, $context) );