Tôi đang sử dụng DryScrape để cạo một trang javascript và đôi khi nó giết chết quá trình nếu có lỗi. Tôi đã cố gắng sử dụng một nắm bắt theo tài liệu hướng dẫn để ngăn chặn nó, nhưng tôi đã không figured it out:Kết nối bị từ chối khi cố gắng khởi động lại một chuỗi cho webscrapper
try:
sess.visit('url'))
except webkit_server.EndOfStreamError:
continue
except webkit_server.NoResponeerror:
continue
except webkit_server.InvalidResponseError:
continue
except webkit_server.NoX11Error:
continue
Vì vậy, tôi có một thiết lập như thế này để khởi động lại đề nếu họ sụp đổ: lớp Checker() : def check_if_thread_is_alive (tự): a = ThreadClass() a.start()
b = ThreadClass()
b.start()
c = ThreadClass()
c.start()
d = ThreadClass()
d.start()
while True:
if not a.is_alive():
print "Restarting A"
a = ThreadClass()
a.start()
if not b.is_alive():
print "Restarting B"
b = ThreadClass()
b.start()
if not c.is_alive():
print "Restarting C"
c = ThreadClass()
c.start()
if not d.is_alive():
print "Restarting D"
d = ThreadClass()
d.start()
Tuy nhiên, tôi kết thúc nhận được một lỗi bất cứ khi nào tôi cố gắng khởi động lại một sợi:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
self.run()
File "Scrapper.py", line 30, in run
sess = dryscrape.Session(base_url = 'url')
File "/usr/local/lib/python2.7/dist-packages/dryscrape/session.py", line 18, in __init__
self.driver = driver or DefaultDriver()
File "/usr/local/lib/python2.7/dist-packages/dryscrape/driver/webkit.py", line 30, in __init__
super(Driver, self).__init__(**kw)
File "/usr/local/lib/python2.7/dist-packages/webkit_server.py", line 225, in __init__
self.conn = connection or ServerConnection()
File "/usr/local/lib/python2.7/dist-packages/webkit_server.py", line 444, in __init__
self._sock = (server or get_default_server()).connect()
File "/usr/local/lib/python2.7/dist-packages/webkit_server.py", line 414, in connect
sock.connect(("127.0.0.1", self._port))
File "/usr/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
error: [Errno 111] Connection refused
Có cách nào tốt hơn để tìm cách giải quyết vấn đề này hoặc thiếu thứ gì đó không?
tôi sẵn sàng đặt cược 'url' * là * một chuỗi URL, nhưng nó đã thay đổi vì lý do riêng tư. Rõ ràng là một sự thay thế xấu rõ ràng gây ra sự nhầm lẫn. –