2017-01-13 9 views
0

Ich kratze einige Daten des Internets mit Python, BeautifulSoup und Selenium. Ich benutze auch PyVirtualDisplay, so dass ich keine Anzeige brauche.Wie man mit httplib.BadStatusLine umgehen: ''

Es perfekt von meinem Laptop funktioniert, aber wenn ich, wenn von einem Server ausführen ich die folgende Fehlermeldung erhalten:

httplib.BadStatusLine: '' 

Ich habe diese zum zweiten Mal einer Seite abgeschabt. Es macht es jetzt die ganze Zeit. Was ist das Problem?

EDIT

Code hinzugefügt:

import requests, bs4 
import csv 
import re 
import datetime 
import time 
import os 

from contextlib import closing 
from selenium import webdriver 
from selenium.webdriver import Firefox # pip install selenium 
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.common.action_chains import ActionChains 
from selenium.webdriver.common.keys import Keys 
from pyvirtualdisplay import Display 

display = Display(visible=0, size=(1500, 1200)) 
display.start() 

url_base = "https://www.seek.com.au/jobs?page=" 

# open web browser and login 
binary = FirefoxBinary('/home/firefox/firefox/firefox') 
driver = webdriver.Firefox(firefox_binary=binary) 

overlap = False 
page = 0 

while not overlap: 
    page += 1 
    driver.get(url_base+str(page)) 

    ... 

Und hier ist die Zurückverfolgungs:

Traceback (most recent call last): 
    File "manage.py", line 22, in <module> 
    execute_from_command_line(sys.argv) 
    File "/var/www/matt/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line 
    utility.execute() 
    File "/var/www/matt/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 359, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/var/www/matt/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 294, in run_from_argv 
    self.execute(*args, **cmd_options) 
    File "/var/www/matt/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 345, in execute 
    output = self.handle(*args, **options) 
    File "/var/www/matt/matt/management/commands/mattv3.py", line 109, in handle 
    driver.get(url_base+str(page)) 
    File "/var/www/matt/env/local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 245, in get 
    self.execute(Command.GET, {'url': url}) 
    File "/var/www/matt/env/local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 231, in execute 
    response = self.command_executor.execute(driver_command, params) 
    File "/var/www/matt/env/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 "/var/www/matt/env/local/lib/python2.7/site-packages/selenium/webdriver/remote/remote_connection.py", line 426, in _request 
    resp = self._conn.getresponse() 
    File "/usr/lib/python2.7/httplib.py", line 1136, in getresponse 
    response.begin() 
    File "/usr/lib/python2.7/httplib.py", line 453, in begin 
    version, status, reason = self._read_status() 
    File "/usr/lib/python2.7/httplib.py", line 417, in _read_status 
    raise BadStatusLine(line) 
httplib.BadStatusLine: '' 
+0

poste deinen Code. –

Antwort

0

Ich war dies auf einem sehr kleinen Server ausgeführt wird (512 MB, 20 GB SSD). Ich habe es erhöht und es läuft gut. Wenn mir jemand das Thema erklären könnte, würde ich es gerne verstehen.

Verwandte Themen