2016-12-06 9 views
1

私はページにアクセスして、そのソースをセレンを使用して取得しようとしています。だから私はこのような単純な関数を持っています:PhantomjsでSeleniumを使用しているときのBadStatusLine例外

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

答えて

0

ある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 
関連する問題