我已经构建了一个简单的专用浏览器(如Prism),我将其用于不同的网站。可悲的是,Google+阻止所有浏览器,但有四个。所以它也阻止我的。
如何在MozEmbed中设置User-Agent,所以我可以告诉Goolge,我正在使用Firefox?
mozembed = gtkmozembed.MozEmbed()
mozembed.load_url("https://plus.google.com")
mozembed.show()
答案 0 :(得分:1)
很抱歉,还没有测试过,因为我的Mozilla内容本身已经被破解了。
设置它的一种方法是创建自定义设置文件prefs.js并将该目录设置为配置文件目录:
profdir = '~/.config/mozilla'
profile = 'foo'
mozembed.set_profile_path(profile_directory, profile)
现在,gtkmozembed应该从~/.config/mozilla/foo/prefs.js
读取首选项。示例custom user-agent条目:
user_pref("general.useragent.override", 'foo');
另一种选择是重载gtkmozembed.*_stream
函数,以使用User-Agent
注入自定义urllib2
标题。
PS。试用WebkitGTK +和gobject-introspection。自Gtk + -3以来,Mozilla和GTK +有点破碎。
答案 1 :(得分:0)
我在这里找到了一个可能的解决方案:
http://www.mail-archive.com/pygtk@daa.com.au/msg18189.html
基本上是关于使用urllib获取网站内容,您可以在其中设置用户代理,然后使用mozembed阅读此内容
fd = urllib2.urlopen(urllib2.Request(url, headers={'User-Agent': USER_AGENT}))
html = fd.read()
fd.close()
mozembed.open_stream(url, "text/html")
mozembed.append_data(html, len(html))
mozembed.close_stream()