支持代理的Python Webkit
我正在写一个Python脚本,用来抓取网页。我创建了一个webkit的网页视图对象,并使用open方法来加载网址。但是,我想通过一个代理来加载这个网址。
我该怎么做呢?如何把webkit和代理结合起来?哪个webkit类支持代理呢?
3 个回答
1
有没有现成的解决方案呢?
PyPhantomJS 是一个简单的工具,它不需要显示界面,基于 WebKit,使用 JavaScript 驱动。这个工具是用 PyQt4 和 Python 写的,可以在 Linux、Windows 和 Mac OS X 上运行。
它让你可以使用一个完整的无头 WebKit 浏览器,通过用 JavaScript 写的脚本来控制它。你可以用它做很多事情,比如抓取网页内容和支持代理。它是通过命令行来操作的。
你可以在这里查看 API 文档 这里。
* 当我说抓取网页内容时,我的意思是你可以提取页面上的内容,甚至可以把页面的渲染结果保存到文件里。这里还有一个已经写好的抓取网页内容的 JavaScript 库 在这里。
4
试试下面的代码片段。(参考自 这个链接)
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')
希望这能对你有所帮助。