Найти - Пользователи
Полная версия: spynner + Referer + socks
Начало » Python для новичков » spynner + Referer + socks
1
webstghost
В документации к spynner не обнаружены возможности задать свой Referer и работать с socks. Посоветуйте с какой стороны проше подступиться к искоренению этих недостатков? socks списком, планируется использовать multiprocessing, и нужна возможность менять socks для каждого нового процесса. Очень простая и приятная реализация этих вещей в grab.
lorien
Про spynner не знаю, могу лишь посоветовать selenium, там можно юзать соксы (если без авторизации). И user-agent можно задать. Обе задачи решаются с помощью настроек профиля firefox.
webstghost
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()
    #}
Но как это использовать не очень понятно, пляски с бубном не привели к результату. Ошибок не выдает, прокси не использует. Недопилен или я неправильно делаю. Проект похоже заброшен…
lorien
Я ковырял чуток spynner и Ghost.py - оба проекта произвели впечатление, что там ещё много пилить. Собсно, вы код видели, он не такой уж и большой там. А чем selenium не устраивает?
webstghost
lorien
А чем selenium не устраивает?
Мне не удалось заставить его функционировать на машине без x-ов в связке с QtWebKit.
lorien
webstghost
lorien
А чем selenium не устраивает?
Мне не удалось заставить его функционировать на машине без x-ов в связке с QtWebKit.
Что такое связка селеним и QtWebkit, не знаю, но на машине без иксов он запускается без проблем в Xvfb
webstghost
lorien
Что такое связка селеним и QtWebkit, не знаю, но на машине без иксов он запускается без проблем в Xvfb
У меня уже на стадии при запуске в 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'
А spynner отрабатывает нормально.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB