我正在编写一个用于抓取网页的python脚本。我创建了一个webkit webview对象,并使用open方法加载url。但我想通过代理加载网址。 我怎么能这样做?如何将webkit与代理集成?哪个webkit类支持代理?
答案 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)
答案 2 :(得分:1)
已经制定的解决方案怎么样?
PyPhantomJS是一款简约,无头,基于WebKit的JavaScript驱动工具。它是用PyQt4和Python编写的。它可以在Linux,Windows和Mac OS X上运行。
它允许您访问完整的无头WebKit浏览器,可通过JavaScript编写的脚本控制,能够执行各种操作,其中包括屏幕抓取和代理支持。它使用命令行。
您可以看到API here。
*当我说屏幕抓取时,我的意思是你可以抓取页面内容,甚至可以将页面渲染保存到文件中。甚至还有一个屏幕抓取JS库已经编写here。