https://www.handelsregister.de/rp_web/mask.do?Typ=e
Postleitzahl:填入 01067
点击suchen
进入下一页,有一个Verdoppeln Sie hier das Suchergebnislimit. 链接
我想得到它的内容。但是一直返回错误。我想可能它设置了什么cookie.可是我已经在程序里面加了一个cookie变量。
$cookie_jar = tempnam('./tmp','cookie');
search($kookie_jar);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.handelsregister.de/rp_web/search.do?doppelt');
//curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_NOBODY, false);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); $enterprises_list=curl_exec($ch);//返回错误curl_close($ch);
请教下问题会在哪里?10分奉上。
Postleitzahl:填入 01067
点击suchen
进入下一页,有一个Verdoppeln Sie hier das Suchergebnislimit. 链接
我想得到它的内容。但是一直返回错误。我想可能它设置了什么cookie.可是我已经在程序里面加了一个cookie变量。
$cookie_jar = tempnam('./tmp','cookie');
search($kookie_jar);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.handelsregister.de/rp_web/search.do?doppelt');
//curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_NOBODY, false);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); $enterprises_list=curl_exec($ch);//返回错误curl_close($ch);
请教下问题会在哪里?10分奉上。
第二个提交查询
第三个获取结果set_time_limit(0);
$URL = 'https://www.handelsregister.de/rp_web/mask.do?Typ=e';
define( "COOKIEJAR", tempnam(ini_get( "upload_tmp_dir" ), "cookie"));
$useragent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)";
$header = array('Accept-Language: zh-cn','Connection: Keep-Alive','Cache-Control: no-cache');
$ch = curl_init();
curl_setopt($ch, CURLOPT_REFERER, $URL);
curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR);
curl_setopt($ch, CURLOPT_COOKIEFILE, COOKIEJAR);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $URL);
$result = curl_exec($ch); $strPOST = "suchTyp=e&eregisterArt=®isterNummer®istergericht=&schlagwoerter=&schlagwortOptionen=2&niederlassung=&rechtsform=&postleitzahl=01067&ort=&strasse=&ergebnisseProSeite=10&btnSuche=Suchen";
$ch = curl_init();
curl_setopt($ch, CURLOPT_REFERER, $URL);
curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR);
curl_setopt($ch, CURLOPT_COOKIEFILE, COOKIEJAR);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $strPOST);
curl_setopt($ch, CURLOPT_URL, "https://www.handelsregister.de/rp_web/mask.do?Typ=e");
$result = curl_exec($ch);
$str = file_get_contents(COOKIEJAR);
if(preg_match("/JSESSIONID\s([\w\.]+)/",$str,$matches))
{
$sessionid = $matches[1];
}$ch = curl_init();
curl_setopt($ch, CURLOPT_REFERER, "https://www.handelsregister.de/rp_web/mask.do?Typ=e");
curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR);
curl_setopt($ch, CURLOPT_COOKIEFILE, COOKIEJAR);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, sprintf("https://www.handelsregister.de/rp_web/search.do;jsessionid=%s?doppelt", $sessionid));
$result = curl_exec($ch);
echo $result;
不过我用Ie的时候,没有这个,所以大意了。
原理暂时不研究了。
你这个关键问题有两个:
1 https
2 cookie保存的jsessionid