Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.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 干刮-在第一个会话之后创建新会话时拒绝连接_Python_Session_Web Scraping_Capybara Webkit_Xvfb - Fatal编程技术网

Python 干刮-在第一个会话之后创建新会话时拒绝连接

Python 干刮-在第一个会话之后创建新会话时拒绝连接,python,session,web-scraping,capybara-webkit,xvfb,Python,Session,Web Scraping,Capybara Webkit,Xvfb,我正在使用DrySrape从不同的页面中提取一些HTML数据。这都是django应用程序的一部分,但我发现在使用Pythonshell时也会出现这个问题。第二个连接有问题。我正在使用: Python 2.7.6 (default, Mar 4 2014, 13:14:52) dryscrape Version: 0.9 webkit-server Version: 1.0 xvfbwrapper Version: 0.2.5 下面你可以看到我如何使用它 Python 2.7.6 (defa

我正在使用DrySrape从不同的页面中提取一些HTML数据。这都是django应用程序的一部分,但我发现在使用Pythonshell时也会出现这个问题。第二个连接有问题。我正在使用:

Python 2.7.6 (default, Mar  4 2014, 13:14:52) 
dryscrape Version: 0.9
webkit-server Version: 1.0
xvfbwrapper Version: 0.2.5
下面你可以看到我如何使用它

Python 2.7.6 (default, Mar  4 2014, 13:14:52) 
Type "copyright", "credits" or "license" for more information.

IPython 2.1.0 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: import dryscrape

In [2]: from xvfbwrapper import Xvfb

In [3]: x = Xvfb()

In [4]: x.start()

In [5]: session = dryscrape.Session(base_url='http://google.com')

In [6]: session.visit('')

In [7]: session.url()
Out[7]: u'http://www.google.pl/?gfe_rd=cr&ei=d95qVvLfFc2v8wfamoG4Aw'

In [8]: x.stop()
现在一切都好。但如果我想继续,再进行一次治疗

...
In [8]: x.stop()

In [9]: x = Xvfb()

In [10]: x.start()

In [11]: session = dryscrape.Session(base_url='http://google.com')
---------------------------------------------------------------------------
error                                     Traceback (most recent call last)
<ipython-input-11-6cbe39a8459d> in <module>()
----> 1 session = dryscrape.Session(base_url='http://google.com')

/home/mefioo/public_html/kariera_naukowa/env/lib/python2.7/site-packages/dryscrape/session.pyc in __init__(self, driver, base_url)
     16                driver = None,
     17                base_url = None):
---> 18     self.driver = driver or DefaultDriver()
     19     self.base_url = base_url
     20 

/home/mefioo/public_html/kariera_naukowa/env/lib/python2.7/site-packages/dryscrape/driver/webkit.pyc in __init__(self, **kw)
     28   def __init__(self, **kw):
     29     kw.setdefault('node_factory_class', NodeFactory)
---> 30     super(Driver, self).__init__(**kw)

/home/mefioo/public_html/kariera_naukowa/env/lib/python2.7/site-packages/webkit_server.pyc in __init__(self, connection, node_factory_class)
    228                node_factory_class = NodeFactory):
    229     super(Client, self).__init__()
--> 230     self.conn = connection or ServerConnection()
    231     self._node_factory = node_factory_class(self)
    232 

/home/mefioo/public_html/kariera_naukowa/env/lib/python2.7/site-packages/webkit_server.pyc in __init__(self, server)
    505   def __init__(self, server = None):
    506     super(ServerConnection, self).__init__()
--> 507     self._sock = (server or get_default_server()).connect()
    508     self.buf = SocketBuffer(self._sock)
    509     self.issue_command("IgnoreSslErrors")

/home/mefioo/public_html/kariera_naukowa/env/lib/python2.7/site-packages/webkit_server.pyc in connect(self)
    438     """ Returns a new socket connection to this server. """
    439     sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
--> 440     sock.connect(("127.0.0.1", self._port))
    441     return sock
    442 

/usr/local/lib/python2.7/socket.pyc in meth(name, self, *args)
    222 
    223 def meth(name,self,*args):
--> 224     return getattr(self._sock,name)(*args)
    225 
    226 for _m in _socketmethods:

error: [Errno 111] Connection refused
。。。
在[8]:x.stop()中
在[9]中:x=Xvfb()
在[10]:x.start()中
在[11]中:session=drysrape.session(base_url='10〕http://google.com')
---------------------------------------------------------------------------
错误回溯(最近一次呼叫上次)
在()
---->1 session=drysrap.session(基本url=)http://google.com')
/home/mefioo/public_html/kariera_naukowa/env/lib/python2.7/site-packages/drysrape/session.pyc in_uuuuuinit_uuuuuuuuuuuuu(self、driver、base_uurl)
16驱动器=无,
17基本url=无):
--->18 self.driver=驱动程序或默认驱动程序()
19 self.base\u url=base\u url
20
/home/mefioo/public_html/kariera_naukowa/env/lib/python2.7/site-packages/drysrape/driver/webkit.pyc in_uuuuuinit_uuuuuuuu(self,**kw)
28 def初始功率(自身功率,**kw):
29 kw.设置默认值('node\u factory\u class',NodeFactory)
--->30超级(驱动器,自)初始功率(**kw)
/home/mefioo/public\u html/kariera\u naukowa/env/lib/python2.7/site-packages/webkit\u server.pyc in\uuuuuuuuuuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
228节点\工厂\类别=节点系数):
229超级(客户机,自我)。\uuuuu初始化
-->230 self.conn=连接或服务器连接()
231 self.\u node\u factory=node\u factory\u类(self)
232
/home/mefioo/public_html/kariera_naukowa/env/lib/python2.7/site-packages/webkit_server.pyc in_uuuuuinit_uuu(self,server)
505定义初始化(self,服务器=None):
506超级(服务器连接,自身)。\uuuu初始化
-->507 self.\u sock=(服务器或获取默认服务器()).connect()
508 self.buf=SocketBuffer(self.\u sock)
509自我发布命令(“忽略错误”)
/连接中的home/mefioo/public_html/kariera_naukowa/env/lib/python2.7/site-packages/webkit_server.pyc(self)
438“返回到该服务器的新套接字连接。”“”
439 sock=socket.socket(socket.AF\u INET,socket.sock\u流)
-->440插座连接((“127.0.0.1”,自身端口))
441返回短袜
442
/meth中的usr/local/lib/python2.7/socket.pyc(名称,self,*args)
222
223 def meth(名称、自身、*args):
-->224返回getattr(self._sock,name)(*args)
225
226对于_min _socketmethods:
错误:[Errno 111]连接被拒绝
例如,我这样做是因为在django应用程序中,它是视图逻辑的一部分,第二次请求该视图会导致此错误。重新启动django服务器或PythonShell可以解决这个问题,但只用于第一次连接,所以它对于工作网页是无用的。我是否遗漏了X会话的一些“干净”或“重启”,或两者之间的webkit服务器(capibara webkit)?

好的,这不是一个“真正”的答案,因为我仍然不知道是什么问题,但我找到了一种方法让它工作。我已经将Drysrape升级到1.0,并使用了它的新方法
Drysrape.start_xvfb()
而不是xvfbwrapper
xvfb()
。一切正常