Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python httplib.BadStatusLine:&x27';硒和幻影_Python_Selenium_Phantomjs_Aws Lambda - Fatal编程技术网

Python httplib.BadStatusLine:&x27';硒和幻影

Python httplib.BadStatusLine:&x27';硒和幻影,python,selenium,phantomjs,aws-lambda,Python,Selenium,Phantomjs,Aws Lambda,我在加载URL时遇到了这个错误,并且遇到了一个奇怪的错误,我不知道如何修复。我的情况要求我必须使用PhantomJS,因为我认为我不能在AWS Lambda上使用Firefox驱动程序,在我的抓取过程中,我遇到了Chromedriver无法点击的按钮 如果我将PhantomJS切换到Chrome或Firefox,url解析很好 使用selenium==3.4.1和PhantomJS 2.1.1 user_agent = ( "Mozilla/5.0 (Macintosh; Int

我在加载URL时遇到了这个错误,并且遇到了一个奇怪的错误,我不知道如何修复。我的情况要求我必须使用PhantomJS,因为我认为我不能在AWS Lambda上使用Firefox驱动程序,在我的抓取过程中,我遇到了Chromedriver无法点击的按钮

如果我将PhantomJS切换到Chrome或Firefox,url解析很好

使用selenium==3.4.1和PhantomJS 2.1.1

user_agent = (
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:53.0) Gecko/20100101 Firefox/53.0")

dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap["phantomjs.page.settings.userAgent"] = user_agent
dcap["phantomjs.page.settings.javascriptEnabled"] = True

browser = webdriver.PhantomJS(service_log_path=os.path.devnull, service_args=[
    '--ignore-ssl-errors=true'], desired_capabilities=dcap)

browser.set_window_size(1120, 550)
browser.get('https://drizly.com/session/new')



File "main.py", line 257, in <module>
    lambda_handler(None, None)
  File "main.py", line 103, in lambda_handler
    browser.get('https://drizly.com/session/new')
  File "/Users/aymon/Envs/drizly/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 264, in get
    self.execute(Command.GET, {'url': url})
  File "/Users/aymon/Envs/drizly/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 250, in execute
    response = self.command_executor.execute(driver_command, params)
  File "/Users/aymon/Envs/drizly/lib/python2.7/site-packages/selenium/webdriver/remote/remote_connection.py", line 464, in execute
    return self._request(command_info[0], url, body=data)
  File "/Users/aymon/Envs/drizly/lib/python2.7/site-packages/selenium/webdriver/remote/remote_connection.py", line 526, in _request
    resp = opener.open(request, timeout=self._timeout)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 431, in open
    response = self._open(req, data)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 449, in _open
    '_open', req)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 409, in _call_chain
    result = func(*args)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 1227, in http_open
    return self.do_open(httplib.HTTPConnection, req)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 1200, in do_open
    r = h.getresponse(buffering=True)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 1132, in getresponse
    response.begin()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 453, in begin
    version, status, reason = self._read_status()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 417, in _read_status
    raise BadStatusLine(line)
httplib.BadStatusLine: ''
user\u-agent=(
“Mozilla/5.0(Macintosh;英特尔Mac OS X 10.12;rv:53.0)Gecko/20100101 Firefox/53.0”)
dcap=dict(DesiredCapabilities.PHANTOMJS)
dcap[“phantomjs.page.settings.userAgent”]=用户代理
dcap[“phantomjs.page.settings.javascriptEnabled”]=True
browser=webdriver.PhantomJS(服务日志路径=os.path.devnull,服务参数=[
'--忽略ssl错误=true'],所需的功能=dcap)
浏览器。设置窗口大小(1120550)
browser.get('https://drizly.com/session/new')
文件“main.py”,第257行,在
lambda_处理器(无,无)
lambda_处理器中的文件“main.py”,第103行
browser.get('https://drizly.com/session/new')
get中的文件“/Users/aymon/Envs/drizly/lib/python2.7/site packages/selenium/webdriver/remote/webdriver.py”,第264行
self.execute(Command.GET,{'url':url})
文件“/Users/aymon/Envs/drizly/lib/python2.7/site packages/selenium/webdriver/remote/webdriver.py”,第250行,在execute中
响应=self.command\u executor.execute(driver\u command,params)
文件“/Users/aymon/Envs/drizly/lib/python2.7/site packages/selenium/webdriver/remote/remote_connection.py”,执行中的第464行
返回self.\u请求(命令信息[0],url,正文=数据)
文件“/Users/aymon/Envs/drizly/lib/python2.7/site packages/selenium/webdriver/remote/remote\u connection.py”,第526行,在请求中
resp=opener.open(请求,超时=self.\u超时)
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第431行,打开
响应=自身打开(请求,数据)
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第449行,打开
"开放",
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第409行,在调用链中
结果=func(*args)
http_open中的文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第1227行
返回self.do_open(httplib.HTTPConnection,req)
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第1200行,打开
r=h.getresponse(缓冲=True)
getresponse中的文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py”,第1132行
response.begin()
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py”,begin中第453行
版本、状态、原因=self.\u读取\u状态()
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py”,第417行,处于“读取”状态
升起状态行(行)
httplib.BadStatusLine:“”

BadStatusLine
HTTPException
的一个子类,在以下情况下会引发该类。你可能想抓住它,如下所示

#...
browser.set_window_size(1120, 550)
try:
    browser.get('https://drizly.com/session/new')
except httplib.BadStatusLine as bsl:
    print('[!!!] {message}'.format(bsl.message))
#...

请注意,一个好的做法是避免错误。因此,使用
print

时,其他驱动程序都只能获得200@AymonFournier. 许多Web开发人员构建特定的策略来检测类似于幻影的(无头)浏览器。例如,见。我认为这就是你正在经历的。这就是为什么您应该尝试超越
BadStatusLine
异常,看看是否确实收到了网页源代码。