我试图访问网页并获取其网页。使用硒的来源。所以我有简单的功能,如下所示:
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
我在不同的页面上尝试过它,似乎工作正常。不幸的是,我遇到导致www.wp.pl
异常的页面(BadStatusLine
)。所以我将驱动程序更改为webdriver.Firefox()
并再次调用此函数,这次它起作用了。什么可能导致webdrivers行为的这种差异?我使用的硒版本是2.53.1
答案 0 :(得分: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