具有代理支持的python webkit

时间:2011-08-02 17:13:05

标签: python webkit

我正在编写一个用于抓取网页的python脚本。我创建了一个webkit webview对象,并使用open方法加载url。但我想通过代理加载网址。 我怎么能这样做?如何将webkit与代理集成?哪个webkit类支持代理?

3 个答案:

答案 0 :(得分:4)

尝试以下代码段。 (参考url

import gtk, webkit
import ctypes
libgobject = ctypes.CDLL('/usr/lib/libgobject-2.0.so.0')
libwebkit = ctypes.CDLL('/usr/lib/libsoup-2.4.so.1')
libsoup = ctypes.CDLL('/usr/lib/libsoup-2.4.so.1')
libwebkit = ctypes.CDLL('/usr/lib/libwebkit-1.0.so')

proxy_uri = libsoup.soup_uri_new('http://127.0.0.1:8000') # set your proxy url

session = libwebkit.webkit_get_default_session()
libgobject.g_object_set(session, "proxy-uri", proxy_uri, None)

w = gtk.Window()
s = gtk.ScrolledWindow()
v = webkit.WebView()
s.add(v)
w.add(s)
w.show_all()

v.open('http://www.google.com')

希望,它可以帮助你。

答案 1 :(得分:2)

如果您使用的是pyqt,则可以使用QApplicationProxy;如果您使用的是pygi,则可以使用此代码段:

from gi.repository import WebKit
from gi.repository import Soup

proxy_uri = Soup.URI.new("http://127.0.0.1:8080")
session = WebKit.get_default_session().set_property("proxy-uri")
session.set_property("proxy-uri",proxy_uri)

参考文献:
PyGI
PyQt

答案 2 :(得分:1)

已经制定的解决方案怎么样?

PyPhantomJS是一款简约,无头,基于WebKit的JavaScript驱动工具。它是用PyQt4和Python编写的。它可以在Linux,Windows和Mac OS X上运行。

它允许您访问完整的无头WebKit浏览器,可通过JavaScript编写的脚本控制,能够执行各种操作,其中包括屏幕抓取和代理支持。它使用命令行。

您可以看到API here

*当我说屏幕抓取时,我的意思是你可以抓取页面内容,甚至可以将页面渲染保存到文件中。甚至还有一个屏幕抓取JS库已经编写here