代码之家  ›  专栏  ›  技术社区  ›  jason

请求和urllib2从XBRL页获取错误。'您正在运行的浏览器模式与此应用程序不兼容'

  •  3
  • jason  · 技术社区  · 6 年前

    不知道为什么我不能从这个链接得到这个页面。我要做的就是把它弄到手,喂进美丽的队伍。

    import requests,urllib2
    
    link='https://www.sec.gov/ix?doc=/Archives/edgar/data/1373715/000137371518000157/now-2018630x10q.htm'
    
    r = requests.get(link)
    
    r2=urllib2.urlopen(link)
    html=r2.read()
    

    headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
    
    r = requests.get(link, headers=headers)
    

    文字是一样的。。。不是我想要的那一页。

    得到一个像这样的标题

    var note = 'The browser mode you are running is not compatible with this application.';
    
                browserName ='Microsoft Internet Explorer';
    
                note +='You are currently running '+browserName+' '+((ie7>0)?7:8)+'.0.';       
    
                    var userAgent = window.navigator.userAgent.toLowerCase();           
    
                    if(userAgent.indexOf('ipad') != -1 || userAgent.indexOf('iphone') != -1 || userAgent.indexOf('apple') != -1){               
    
                        note += ' Please use a more current version of '+browserName+' in order to use the application.';
    
                    }else if(userAgent.indexOf('android') != -1){               
    
                        note += ' Please use a more current version of Google Chrome or Mozilla Firefox in order to use the application.';
    
                    }else{              
    
                        note += ' Please use a more current version of Microsoft Internet Explorer, Google Chrome or Mozilla Firefox in order to use the application.';
    
                    }
    

    https://www.sec.gov/Archives/edgar/data/1373715/000137371518000153/erq2fy18-document.htm

    不是XBRL文档。我认为这与XBRL有关,服务器希望我的浏览器与数据交互?

    1 回复  |  直到 6 年前
        1
  •  1
  •   t.m.adam    6 年前

    似乎这部分页面是由js呈现的。通常动态内容最可靠的选择是 selenium ,但在这种情况下,您可以避免使用 requests .

    很明显,页面使用了此文档的内容 /Archives/edgar/data/1373715/000137371518000157/now-2018630x10q.htm

    import requests
    
    url = "https://www.sec.gov/Archives/edgar/data/1373715/000137371518000157/now-2018630x10q.htm"
    r = requests.get(url)
    html = r.text
    
    print(html)