1

Web ショップから評価を読み取るためのクロール スクリプトを作成しています。

正しいコンテンツを取得できないため、カール部分が問題になっています。

ajax スクリプトを使用して、データベースから URL をバッチで選択します。評価のあるページへの正しい URL を curl に与えますが、Curl は URL に可変部分のないページを取得しています。

これは、私が Curl に渡す URL です。$actualurl

http://www.domain.com/epages/xxx.sf/de_DE/?ObjectPath=/Shops/15456062/Products/%22Briefkastenst%C3%A4nder%20Bobiround%22/SubProducts/%22Briefkastenst%C3%A4nder%20Bobiround% 20gr%C3%BCn%20RAL6005%22&ViewAction=ViewProductRating

(これは、6 つの評価 (製品) をすべて読みたいページです。)

しかし、curl 呼び出しを使用すると、このページからコンテンツを取得できます。これは、viewAction がなくても同じです。出力をエコーし​​ました

http://www.domain.com/epages/xxx.sf/de_DE/?ObjectPath=/Shops/15456062/Products/%22Briefkastenst%C3%A4nder%20Bobiround%22/SubProducts/%22Briefkastenst%C3%A4nder%20Bobiround% 20gr%C3%BCn%20RAL6005%22

私の Curl 呼び出しは次のようになります。

            $ch = curl_init();
            curl_setopt($ch, CURLOPT_TIMEOUT, 30);
            curl_setopt($ch, CURLOPT_USERAGENT, $agent);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
            curl_setopt($ch, CURLOPT_URL, $actualurl);              
            //read content of $url
            $result = curl_exec ($ch);
            curl_close ($ch);

Curl が URL の最後の部分を無視するのはなぜですか (with &ViewAction=ViewProductRating)

カール初心者なのでよろしくお願いします!

編集

上記の URL を 4 つの部分から作成します。部品は次のとおりです。

$domainroot: http://www.domain.com/
$objectpath: epages/xxx.sf/de_DE/?ObjectPath
$ratingurl: %3D%2FShops%2F15456062%2FProducts%2F%2522Briefkastenst%25C3%25A4nder%2520Bobiround%2522%2FSubProducts%2F%2522Briefkastenst%25C3%25A4nder%2520Bobiround%2520gr%25C3%25BCn%2520RAL6005%2522%26amp%3B
$viewratings: ViewAction=ViewProductRating

そして最後に、それらを連鎖させます。

$actualurl = $domainroot.$objectpath.$ratingurl.$viewratings;
4

2 に答える 2

1

クエリ文字列の最初のパラメーターは適切にエンコードされます。

$queryString = 'ObjectPath=%2FShops%2F15456062%2FProducts%2F%22Briefkastenst' .     
'%C3%A4nder+Bobiround%22%2FSubProducts%2F%22Briefkastenst' . 
'%C3%A4nder+Bobiround+gr%C3%BCn+RAL6005' 
'&ViewAction=ViewProductRating';
于 2013-04-10T06:52:10.377 に答える