【问题标题】:Why Scrapy returns an Iframe?为什么 Scrapy 返回一个 iframe?
【发布时间】:2017-01-14 05:36:19
【问题描述】:

我想通过 Python-Scrapy 抓取this site

我试试这个

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)

【问题讨论】:

    标签: python iframe web-scraping scrapy web-crawler


    【解决方案1】:

    网站受到网站安全服务 Incapsula 的保护。它为您的“浏览器”提供了一个挑战,它必须先执行,然后才能获得一个特殊的 cookie,让您可以访问网站本身。

    幸运的是,绕过它并不难。安装incapsula-cracker并安装它的下载器中间件:

    DOWNLOADER_MIDDLEWARES = {
        'incapsula.IncapsulaMiddleware': 900
    }
    

    【讨论】:

      猜你喜欢
      • 2013-03-05
      • 1970-01-01
      • 1970-01-01
      • 2021-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-12
      • 2011-12-17
      相关资源
      最近更新 更多