title: httplib.BadStatusLine: '' on Linux but not Mac
body: <p>This error has been under my skin for a few hours now. I decided to code up a separate project just to see if I can replicate it and I can, but ONLY on my server. This works on my Mac.</p>
  
  <ul>
  <li><p>Mac: OSX El Capitan 10.11.6</p></li>
  <li><p>Server: CentOS 7.2.1511</p></li>
  <li><p>Both have PhantomJS version: 2.1.1</p></li>
  <li><p>Python Mac: Python 2.7.11</p></li>
  <li><p>Python Server: 2.7.5</p></li>
  <li><p>Both have Selenium version: 2.53.0</p></li>
  </ul>
  
  <p>Identical code ran on both:</p>
  
  <pre><code>from selenium import webdriver
  from selenium.webdriver.common.by import By
  from selenium.webdriver.support.ui import WebDriverWait
  from selenium.webdriver.support import expected_conditions as EC
  from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
  from selenium.common.exceptions import NoSuchElementException
  import time
  
  dcap = dict(DesiredCapabilities.PHANTOMJS)
  dcap["phantomjs.page.settings.userAgent"] = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36"
  dcap["phantomjs.page.customHeaders.accept"] = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
  dcap["phantomjs.page.customHeaders.Accept-Language"] = "en-US,en;q=0.8"
  dcap["phantomjs.page.customHeaders.connection"] = "keep-alive"
  
  driver = webdriver.PhantomJS(desired_capabilities=dcap)
  driver.set_window_size(1120, 700)
  driver.get("https://www.instagram.com/espn/")
  
  while True:
      print len(driver.find_elements_by_css_selector("a[href*='/p/']"))
      driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
      try:
          loadMore = driver.find_element_by_link_text("Load more")
          loadMore.click()
      except NoSuchElementException:
          print "No such"
          driver.save_screenshot('none.png')
  </code></pre>
  
  <p>Mac output:</p>
  
  <pre><code>12
  24
  No such
  24
  No such
  36
  No such
  48
  No such
  48
  No such
  60
  No such
  72
  No such
  84
  # This goes until I end it
  </code></pre>
  
  <p>Server output:</p>
  
  <pre><code>12
  24
  No such
  Traceback (most recent call last):
    File "junk.py", line 27, in &lt;module&gt;
      driver.save_screenshot('none.png')
    File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 790, in get_screenshot_as_file
      png = self.get_screenshot_as_png()
    File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 809, in get_screenshot_as_png
      return base64.b64decode(self.get_screenshot_as_base64().encode('ascii'))
    File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 819, in get_screenshot_as_base64
      return self.execute(Command.SCREENSHOT)['value']
    File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 231, in execute
      response = self.command_executor.execute(driver_command, params)
    File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/remote_connection.py", line 395, in execute
      return self._request(command_info[0], url, body=data)
    File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/remote_connection.py", line 463, in _request
      resp = opener.open(request, timeout=self._timeout)
    File "/usr/lib64/python2.7/urllib2.py", line 431, in open
      response = self._open(req, data)
    File "/usr/lib64/python2.7/urllib2.py", line 449, in _open
      '_open', req)
    File "/usr/lib64/python2.7/urllib2.py", line 409, in _call_chain
      result = func(*args)
    File "/usr/lib64/python2.7/urllib2.py", line 1244, in http_open
      return self.do_open(httplib.HTTPConnection, req)
    File "/usr/lib64/python2.7/urllib2.py", line 1217, in do_open
      r = h.getresponse(buffering=True)
    File "/usr/lib64/python2.7/httplib.py", line 1089, in getresponse
      response.begin()
    File "/usr/lib64/python2.7/httplib.py", line 444, in begin
      version, status, reason = self._read_status()
    File "/usr/lib64/python2.7/httplib.py", line 408, in _read_status
      raise BadStatusLine(line)
  httplib.BadStatusLine: ''
  </code></pre>
  
  <p>Server output after removing the screenshot line:</p>
  
  <pre><code>12
  24
  No such
  24
  Traceback (most recent call last):
    File "junk.py", line 23, in &lt;module&gt;
      loadMore = driver.find_element_by_link_text("Load more")
    File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 314, in find_element_by_link_text
      return self.find_element(by=By.LINK_TEXT, value=link_text)
    File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 744, in find_element
      {'using': by, 'value': value})['value']
    File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 231, in execute
      response = self.command_executor.execute(driver_command, params)
    File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/remote_connection.py", line 395, in execute
      return self._request(command_info[0], url, body=data)
    File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/remote_connection.py", line 463, in _request
      resp = opener.open(request, timeout=self._timeout)
    File "/usr/lib64/python2.7/urllib2.py", line 431, in open
      response = self._open(req, data)
    File "/usr/lib64/python2.7/urllib2.py", line 449, in _open
      '_open', req)
    File "/usr/lib64/python2.7/urllib2.py", line 409, in _call_chain
      result = func(*args)
    File "/usr/lib64/python2.7/urllib2.py", line 1244, in http_open
      return self.do_open(httplib.HTTPConnection, req)
    File "/usr/lib64/python2.7/urllib2.py", line 1217, in do_open
      r = h.getresponse(buffering=True)
    File "/usr/lib64/python2.7/httplib.py", line 1089, in getresponse
      response.begin()
    File "/usr/lib64/python2.7/httplib.py", line 444, in begin
      version, status, reason = self._read_status()
    File "/usr/lib64/python2.7/httplib.py", line 408, in _read_status
      raise BadStatusLine(line)
  httplib.BadStatusLine: ''
  </code></pre>
  
  <p>One related answer I found was here: <a href="https://stackoverflow.com/questions/20435220/cant-run-phantomjs-in-python-via-selenium">Can&#39;t run PhantomJS in python via Selenium</a></p>
  
  <p>So I installed Selenium 2.37 and it gave the same error.</p>
  
  <p>I read <a href="https://stackoverflow.com/questions/9265616/why-does-this-url-raise-badstatusline-with-httplib2-and-urllib2">this answer</a> about the problem perhaps behind related to changing the headers, so I removed the headers by changing the driver to <code>driver = webdriver.PhantomJS()</code> and still get the same error.</p>
  
  <p>I also installed 2.7.12 on the server, to see if there was a difference. Output was:</p>
  
  <pre><code># python2.7 junk.py
  12
  24
  No such
  24
  Traceback (most recent call last):
    File "junk.py", line 29, in &lt;module&gt;
      loadMore = driver.find_element_by_link_text("Load more")
    File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 314, in find_element_by_link_text
      return self.find_element(by=By.LINK_TEXT, value=link_text)
    File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 744, in find_element
      {'using': by, 'value': value})['value']
    File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 231, in execute
      response = self.command_executor.execute(driver_command, params)
    File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/remote/remote_connection.py", line 395, in execute
      return self._request(command_info[0], url, body=data)
    File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/remote/remote_connection.py", line 463, in _request
      resp = opener.open(request, timeout=self._timeout)
    File "/usr/local/lib/python2.7/urllib2.py", line 429, in open
      response = self._open(req, data)
    File "/usr/local/lib/python2.7/urllib2.py", line 447, in _open
      '_open', req)
    File "/usr/local/lib/python2.7/urllib2.py", line 407, in _call_chain
      result = func(*args)
    File "/usr/local/lib/python2.7/urllib2.py", line 1228, in http_open
      return self.do_open(httplib.HTTPConnection, req)
    File "/usr/local/lib/python2.7/urllib2.py", line 1201, in do_open
      r = h.getresponse(buffering=True)
    File "/usr/local/lib/python2.7/httplib.py", line 1136, in getresponse
      response.begin()
    File "/usr/local/lib/python2.7/httplib.py", line 453, in begin
      version, status, reason = self._read_status()
    File "/usr/local/lib/python2.7/httplib.py", line 417, in _read_status
      raise BadStatusLine(line)
  httplib.BadStatusLine: ''
  </code></pre>
  
  <p>Checking space on system. It's a brand new VPS, but still, to confirm:</p>
  
  <p><a href="https://i.stack.imgur.com/mJkfv.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/mJkfv.png" alt="enter image description here"></a></p>