编程语言
首页 > 编程语言> > python – 为什么Scrapy返回一个iframe?

python – 为什么Scrapy返回一个iframe?

作者:互联网

我想通过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)

解决方法:

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

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

DOWNLOADER_MIDDLEWARES = {
    'incapsula.IncapsulaMiddleware': 900
}

标签:python,web-scraping,scrapy,iframe,web-crawler
来源: https://codeday.me/bug/20191007/1867850.html