2017-03-23 6 views
0

私は掻爬のサイトを傷病にしようとしています。 しかし私はその国から来ていないので、ページエラー404にリダイレクトしています。 プロキシを使用する場合、私は同じです。 マイコード:国に縛られたウェブサイトを掻きする方法

# -*- coding: utf-8 -*- 
import scrapy 

from v4.items import Product 


class AcerOfficeworksAuSpider(scrapy.Spider): 
    name = "acer_officeworks_au_py" 

    url = 'https://www.officeworks.com.au/shop/SearchDisplay?searchTerm=acer&storeId=10151&langId=-1&pageSize=24&beginIndex=0&sType=SimpleSearch&resultCatEntryType=2&showResultsPage=true&searchSource=Q&pageView=' 

    def start_requests(self): 
     yield scrapy.Request(self.url, self.parse, meta={'proxy': 'http://97.77.104.22:3128'}) 

    def parse(self, response): 
     print response 

結果:

2017-03-23 12:49:29 [scrapy] DEBUG: Redirecting (302) to <GET https://wc-prod-joomla.s3.amazonaws.com/404/404.html> from <GET https://www.officeworks.com.au/shop/SearchDisplay?searchTerm=acer&storeId=10151&langId=-1&pageSize=24&beginIndex=0&sType=SimpleSearch&resultCatEntryType=2&showResultsPage=true&searchSource=Q&pageView=> 
2017-03-23 12:49:34 [scrapy] DEBUG: Crawled (200) <GET https://wc-prod-joomla.s3.amazonaws.com/404/404.html> (referer: None) 
<200 https://wc-prod-joomla.s3.amazonaws.com/404/404.html> 
2017-03-23 12:49:34 [scrapy] INFO: Closing spider (finished) 

レスポンス、プロキシの使用がカール場合:私はそれを動作させるために、まだ試すことができますどのような

HTTP/1.1 200 Connection established 

HTTP/1.1 302 Security Redirect 
Cache-Control: no-cache 
Expires: 0 
Location: https://wc-prod-joomla.s3.amazonaws.com/404/404.html 
Pragma: no-cache 
transfer-encoding: chunked 
Connection: keep-alive 

+0

どこですか?元のURLはスイスから私のためにうまくロードされます。ブラウザでURLを読み込むことはできますか? –

+0

@MartinBonner私はウクライナ出身です。 vpnを使用しているブラウザでは、読み込み中です。 – SVSerhii

+0

クロムを使用している場合は、[メニュー>その他のツール>開発者ツール]を使用し、[ネットワーク]タブを選択して、実行中のすべてのリクエストを表示します。私は他のブラウザも同様のものだと確信しています。あなたは明らかにあなたのカール/治療要求にvpnを使用していることを確認する必要があります。私はwww.iplocation.netからフェッチすることから始め、あなたが戻ってくるものを見ます。 –

答えて

0

製品データは、次のURLにあります。

https://www.officeworks.com.au/webapp/wcs/stores/servlet/OWPriceView?storeId=10151&catalogId=10551&nc=true&productId=90235%2C90237%2C90239%2C504502%2C532522%2C559534%2C450004%2C495002%2C315544%2C582002%2C90229%2C112392%2C450006%2C536530%2C536532%2C536534%2C536536%2C597502%2C605514%2C396502%2C423002%2C536518%2C559532%2C610502 

このページは上記URLからデータをフェッチするためにJavaScriptを使用しています。

In [1]: url = '''https://www.officeworks.com.au/webapp/wcs/stores/servlet/OWPriceView?storeId=10151&catalogId=10551&nc=true&productId=90235%2C90237%2C90239%2C504502%2C5 
    ...: 32522%2C559534%2C450004%2C495002%2C315544%2C582002%2C90229%2C112392%2C450006%2C536530%2C536532%2C536534%2C536536%2C597502%2C605514%2C396502%2C423002%2C536518%2C 
    ...: 559532%2C610502''' 

In [2]: fetch(url) 
2017-03-23 20:01:00 [scrapy.core.engine] INFO: Spider opened 
2017-03-23 20:01:01 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.officeworks.com.au/webapp/wcs/stores/servlet/OWPriceView?storeId=10151&catalogId=10551&nc=true&productId=90235%2C90237%2C90239%2C504502%2C532522%2C559534%2C450004%2C495002%2C315544%2C582002%2C90229%2C112392%2C450006%2C536530%2C536532%2C536534%2C536536%2C597502%2C605514%2C396502%2C423002%2C536518%2C559532%2C610502> (referer: None) 

In [3]: import json 

In [4]: json.loads(response.text) 
Out[4]: 
[{'bulkbuy': True, 
    'hasContractPrice': False, 
    'partNumber': 'ACC120', 
    'price': '$357.00', 
    'priceRange': [{'maximumQuantity': '2.0', 
    'minimumQuantity': '1', 
    'value': {'currency': 'AUD', 'value': 357.0}}, 
    {'maximumQuantity': '', 
    'minimumQuantity': '3', 
    'value': {'currency': 'AUD', 'value': 314.0}}], 
    'priceRangeExclTax': [], 
    'productId': '90229'}, 
+0

JavaScriptに問題がないと思います。サイトとの接続に問題がありますが、ウェブサイトをスクラップするのではありません – SVSerhii

+0

私の国から私はhttps://wc-prod-joomla.s3.amazonaws.com/404/404.htmlにリダイレクトしています – SVSerhii

関連する問題