Форум сайта python.su
В документации к spynner не обнаружены возможности задать свой Referer и работать с socks. Посоветуйте с какой стороны проше подступиться к искоренению этих недостатков? socks списком, планируется использовать multiprocessing, и нужна возможность менять socks для каждого нового процесса. Очень простая и приятная реализация этих вещей в grab.
Офлайн
Про spynner не знаю, могу лишь посоветовать selenium, там можно юзать соксы (если без авторизации). И user-agent можно задать. Обе задачи решаются с помощью настроек профиля firefox.
Офлайн
selenium ковырял, неного не то.
Так и не удалось решить с socks. Вроде функционал есть, хоть и отсутствует в документации:
#{ Proxies def get_proxy(self): """Return string containing the current proxy.""" return self.manager.proxy() def set_proxy(self, string_proxy): """Set proxy [http|socks5]://username:password@hostname:port""" urlinfo = urlparse.urlparse(string_proxy) proxy = QNetworkProxy() if urlinfo.scheme == 'socks5' : proxy.setType(1) elif urlinfo.scheme == 'http' : proxy.setType(3) else : proxy.setType(2) self.manager.setProxy(proxy) return self.manager.proxy() proxy.setHostName(urlinfo.hostname) proxy.setPort(urlinfo.port) if urlinfo.username != None : proxy.setUser(urlinfo.username) else : proxy.setUser('') if urlinfo.password != None : proxy.setPassword(urlinfo.password) else : proxy.setPassword('') self.manager.setProxy(proxy) return self.manager.proxy() #}
Отредактировано webstghost (Июнь 22, 2012 14:35:46)
Офлайн
Я ковырял чуток spynner и Ghost.py - оба проекта произвели впечатление, что там ещё много пилить. Собсно, вы код видели, он не такой уж и большой там. А чем selenium не устраивает?
Офлайн
lorienМне не удалось заставить его функционировать на машине без x-ов в связке с QtWebKit.
А чем selenium не устраивает?
Офлайн
webstghostЧто такое связка селеним и QtWebkit, не знаю, но на машине без иксов он запускается без проблем в XvfblorienМне не удалось заставить его функционировать на машине без x-ов в связке с QtWebKit.
А чем selenium не устраивает?
Отредактировано lorien (Июнь 24, 2012 19:48:15)
Офлайн
lorienУ меня уже на стадии при запуске в Xvfb:
Что такое связка селеним и QtWebkit, не знаю, но на машине без иксов он запускается без проблем в Xvfb
from selenium import webdriver from selenium.common.exceptions import NoSuchElementException import time browser = webdriver.Firefox()
Traceback (most recent call last): File "test.py", line 5, in <module> browser = webdriver.Firefox() File "/usr/lib/python2.6/site-packages/selenium/webdriver/firefox/webdriver.py", line 51, in __init__ self.binary, timeout), File "/usr/lib/python2.6/site-packages/selenium/webdriver/firefox/extension_connection.py", line 47, in __init__ self.binary.launch_browser(self.profile) File "/usr/lib/python2.6/site-packages/selenium/webdriver/firefox/firefox_binary.py", line 44, in launch_browser self._wait_until_connectable() File "/usr/lib/python2.6/site-packages/selenium/webdriver/firefox/firefox_binary.py", line 81, in _wait_until_connectable self._get_firefox_output()) selenium.common.exceptions.WebDriverException: Message: 'The browser appears to have exited before we could connect. The output was: Xlib: extension "RANDR" missing on display ":99.0".\n\n(firefox:8355): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type=\'PangoRenderFc\', script=\'common\'\n*** LOG addons.xpi: startup\n*** LOG addons.xpi: checkForChanges\n*** LOG addons.xpi: Opening database\n*** LOG addons.xpi: No changes found\nGConf Error: Failed to contact configuration server; some possible causes are that you need to enable TCP/IP networking for ORBit, or you have stale NFS locks due to a system crash. See http://projects.gnome.org/gconf/ for information. (Details - 1: Failed to get connection to session: /bin/dbus-launch terminated abnormally without any error message)\nFailed to dlopen /usr/lib/libX11.so.6\ndlerror says: /usr/lib/libX11.so.6: wrong ELF class: ELFCLASS32\n'
Отредактировано webstghost (Июнь 24, 2012 20:32:48)
Офлайн