Почему Scrapy возвращает Ифраме?
Я хочу сканировать этот сайт с помощью Python-Scrapy
я пытаюсь это
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)
1 ответ
Решение
Сайт защищен Incapsula, службой безопасности сайта. Он предоставляет вашему "браузеру" задачу, которую он должен выполнить перед тем, как получить специальный файл cookie, который дает вам доступ к самому веб-сайту.
К счастью, это не так сложно обойти. Установите incapsula-cracker и установите его промежуточное ПО для загрузчика:
DOWNLOADER_MIDDLEWARES = {
'incapsula.IncapsulaMiddleware': 900
}