如何在Python MozEmbed中设置用户代理?

发布于 2024-12-15 08:59:01 字数 269 浏览 3 评论 0原文

我构建了一个简单的专用浏览器(如 Prism),用于不同的网站。遗憾的是,Google+ 阻止了所有浏览器,但只有四种。所以它也阻止了我的。

如何在 MozEmbed 中设置用户代理,以便我可以告诉 Goolge,我正在使用 Firefox?

    mozembed = gtkmozembed.MozEmbed()
    mozembed.load_url("https://plus.google.com")
    mozembed.show()

I have build a simple dedicated browser (like Prism) which I use for different sites. Sadly Google+ blocks all browsers, but four. So it blocks mine too.

How can I set the User-Agent in MozEmbed, so I can tell Goolge, I am using Firefox?

    mozembed = gtkmozembed.MozEmbed()
    mozembed.load_url("https://plus.google.com")
    mozembed.show()

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

墟烟 2024-12-22 08:59:01

抱歉,还没有测试过,因为我的 Mozilla 东西本质上就是坏的 atm。

设置它的一种方法是创建自定义设置文件 prefs.js 并将该目录设置为配置文件目录:

profdir = '~/.config/mozilla'
profile = 'foo'
mozembed.set_profile_path(profile_directory, profile)

现在,gtkmozembed 应该从 ~/.config/mozilla/foo/prefs.js 读取首选项。示例自定义用户代理条目:

user_pref("general.useragent.override", 'foo');

另一个选项是重载gtkmozembed.*_stream 函数使用 urllib2 注入自定义 User-Agent 标头。

附言。尝试 WebkitGTK+ 和 gobject-introspection。自 Gtk+-3 以来,Mozilla 和 GTK+ 就有点破损了。

Sorry, haven't tested it, because my Mozilla stuff is inherently broken atm.

One way to set it is to create custom settings file prefs.js and set that directory as profile directory:

profdir = '~/.config/mozilla'
profile = 'foo'
mozembed.set_profile_path(profile_directory, profile)

Now, gtkmozembed should read preferences from ~/.config/mozilla/foo/prefs.js. Example custom user-agent entry:

user_pref("general.useragent.override", 'foo');

Another option would be to overload the gtkmozembed.*_stream functions to inject custom User-Agent header using urllib2.

PS. Try out WebkitGTK+ and gobject-introspection. Mozilla and GTK+ is a bit broken since Gtk+-3.

羁〃客ぐ 2024-12-22 08:59:01

我在这里找到了一个可能的解决方案:

http://www.mail- archive.com/[email protected]/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()

I found a possible Solution here:

http://www.mail-archive.com/[email protected]/msg18189.html

basically its about getting the Website Content with urllib where you can set an User Agent and then read this content with 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()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文