2017-08-14 10 views
0

Scrapyを使用して一部のデータをクロールしています。私がブラウザでproduct detailを開ける度に、ブラウザーで要求されたthis requestが常に正しい内容を返すようになりました。
ブラウザで上記のリクエストを開いた場合、正しいコンテンツが約10回返されました。そして、「?????」という文字を追加して間違った内容を返しました。
この問題がなぜ発生するのか説明できますか?そしてScrapyを実際のブラウザとして動作させる方法は?
これは正しいコンテンツGETリクエストによって異なるJSONコンテンツが返される

{"itemid": 43369300, "liked": false, "offer_count": 6, "videos": [], "image": "41dabd8fe9b7cbc2ab30501592f65a80", "image_list": ["41dabd8fe9b7cbc2ab30501592f65a80", "91bf75885fffd2b1fbcc55099457bc22", "f4516bb9667f8329f031ff75896a71fd", "d2639a1ffe75912873de6d8e011dc0dd", "38d00637b021e1701542a6afa7ae58f3", "10ab99e3bd211bd4dd63993555d6454b"]..... 

であり、これはあなたが、他の要求request1request2をテストすることができ、間違った内容

{"itemid": 43369300, "liked": false, "offer_count": 10, "videos": [], "rating_star": 4.069458216402549, "image": "41dabd8fe9?????????????????????", "image_list": ["41dabd8fe9?????????????????????", "91bf75885f?????????????????????", "f4516bb966?????????????????????", "d2639a1ffe?????????????????????", "38d00637b0?????????????????????", "10ab99e3bd?????????????????????"]..... 

で、...

+0

"????"あなたが何度も何度も同じURLで起こるのでしょうか?また、ペーストビンにコンテンツを投稿してリンクを投稿する –

+0

私はあなたのコメント@TarunLalwaniとして私の質問を編集しました –

+0

私は確認し、ブラウザで5-10回、同じ要求の変更のコンテンツをリフレッシュします。これは明らかに実際の保護を掻き立てています。プロキシを使用してリクエストを回転させる必要があります –

答えて

0

問題は、あなたがヒットしているためかもしれAPIを直接使用すると、スクレイピングが防止されます。私はカールと余分なヘッダを使用して10〜15回、以下のURLをヒットした場合、それは罰金

curl 'https://xxxx.vn/api/v0/shop/6088300/item/43369300/shipping_info_to_address/?state=H%C3%A0%20N%E1%BB%99i&city=Huy%E1%BB%87n%20Ba%20V%C3%AC&district=' \ 
-H 'Pragma: no-cache' \ 
-H 'DNT: 1' \ 
-H 'Accept-Encoding: gzip, deflate, br' \ 
-H 'Accept-Language: en-US,en;q=0.8' \ 
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36' \ 
-H 'X-API-SOURCE: pc' \ 
-H 'Accept: */*' \ 
-H 'Cache-Control: no-cache' \ 
-H 'X-Requested-With: XMLHttpRequest' \ 
-H 'Referer: https://xxx.vn/H%E1%BB%99p-%C4%91%E1%BB%B1ng-gi%C3%A0y-trong-su%E1%BB%91t-theo-d%C3%B5i-c%C3%B3-gi%C3%A1-t%E1%BB%91t-i.6088300.43369300' \ 
--compressed 

に動作しますので、私はあなたが送るべき4つの重要なヘッダが

'X-Requested-With: XMLHttpRequest' 
'X-API-SOURCE: pc' 
'Referer: https://xxx.vn/H%E1%BB%99p-%C4%91%E1%BB%B1ng-gi%C3%A0y-trong-su%E1%BB%91t-theo-d%C3%B5i-c%C3%B3-gi%C3%A1-t%E1%BB%91t-i.6088300.43369300' 
'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36' 

下回っていると思うの作成中にこれらのヘッダを送信スクラップでのリクエスト

+0

"??????" @タルン郵便配達員のクロムアプリ –

+0

であなたのリクエストをScrapyまたはcurlでテストしましたか?どのようにテストしていますか? –

+0

CSRFとクッキーを削除して動作するかどうかを確認しましたが、クッキーが必要な場合もあります。 –

関連する問題