2016-09-06 78 views
0

我想Python的Scrapy抓取this site爲什麼Scrapy會返回一個Iframe?

我試試這個

class Parik(scrapy.Spider): 
    name = "ooshop" 
    allowed_domains = ["http://www.ooshop.com/courses-en-ligne/Home.aspx"] 

    def __init__(self, idcrawl=None, proxy=None, *args, **kwargs): 
     super(Parik, self).__init__(*args, **kwargs) 
     self.start_urls = ['http://www.ooshop.com/courses-en-ligne/Home.aspx'] 

    def parse(self, response): 
     print response.css('body').extract_first() 

,但我沒有在第一頁,我有一個空的iframe

2016-09-06 19:09:24 [scrapy] DEBUG: Crawled (200) <GET http://www.ooshop.com/courses-en-ligne/Home.aspx> (referer: None) 
<body> 
<iframe style="display:none;visibility:hidden;" src="//content.incapsula.com/jsTest.html" id="gaIframe"></iframe> 
</body> 
2016-09-06 19:09:24 [scrapy] INFO: Closing spider (finished) 

回答

2

的網站受網站安全服務Incapsula保護。它爲您的「瀏覽器」提供了一個挑戰,它必須在獲得一個特殊的Cookie之前執行,以便您訪問網站本身。

幸運的是,繞過並不難。安裝incapsula-cracker並安裝其下載中間件:

DOWNLOADER_MIDDLEWARES = { 
    'incapsula.IncapsulaMiddleware': 900 
} 
+0

它獲得更多的時間,但它的工作原理。謝謝 – parik

相關問題