2016-12-06 5 views
1

Ich versuche, Seite zu besuchen und seine Quelle mit Selen zu bekommen. So habe ich einfache Funktion, die wie folgt aussieht:BadStatusLine Ausnahme bei der Verwendung von Selen mit Phantomjs

Ich versuchte es auf verschiedenen Seiten und es schien gut zu funktionieren. Leider stieß ich auf Seite (www.wp.pl), die BadStatusLine Ausnahme verursacht. Also habe ich den Treiber auf webdriver.Firefox() geändert und diese Funktion erneut aufgerufen und dieses Mal hat es funktioniert. Was könnte diesen Unterschied im Verhalten von Webtreibern verursachen? Die Version von Selen, die ich benutze ist 2.53.1

Antwort

0

Es stellte sich heraus, dass einige Seiten User-Agent erfordern die Angabe so habe ich eine Lösung gefunden here und änderte meine Funktion:

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 
Verwandte Themen