Php 在使用简单的HTML Dom解析器进行解析之前,如何登录Web表单网站? 以下是我试图实现的目标:
我需要从这个网站刮产品数据,但价格是不同的,当你登录。因此,我需要提交这个登录表单(通过php),然后使用它来获取产品数据 我发现了以下类似的帖子: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/");并开
$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) );