BadStatusLine异常时使用硒与Phantomjs

BadStatusLine异常时使用硒与Phantomjs

问题描述:

我试图访问页面,并获得其使用硒的来源。所以我有简单的功能,看起来像这样:BadStatusLine异常时使用硒与Phantomjs

def visit_url(url): 
    browser = webdriver.PhantomJS() 
    if not url.startswith("http://") and not url.startswith("https://"): 
     url = "http://" + url 
    browser.get(url) 
    html = browser.page_source 
    browser.quit() 
    return html 

我试过它在不同的页面,它似乎工作正常。不幸的是,我遇到了导致BadStatusLine例外的页面(www.wp.pl)。于是我将驱动程序更改为webdriver.Firefox()并再次调用此函数,并且这次它工作。什么可能导致webdrivers行为的这种差异?我使用硒的版本是2.53.1

原来,有些页面需要指定用户代理,所以我用一个解决方案发现here和改变了我的功能:

def visit_url(url): 
    dcap = dict(DesiredCapabilities.PHANTOMJS) 
    dcap["phantomjs.page.settings.userAgent"] = (
     "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/53 " 
     "(KHTML, like Gecko) Chrome/15.0.87" 
    ) 
    browser = webdriver.PhantomJS(desired_capabilities=dcap) 
    if not url.startswith("http://") and not url.startswith("https://"): 
     url = "http://" + url 
    browser.get(url) 
    html = browser.page_source 
    browser.quit() 
    return html