如何在Python中设置用户代理?
我已经建立了一个简单的专用浏览器(如Prism),用于不同的站点。不幸的是,Google+屏蔽了所有的浏览器,只有四个。所以它也挡住了我的 如何在MozEmbed中设置用户代理,以便告诉Goolge,我正在使用Firefox如何在Python中设置用户代理?,python,mozilla,google-plus,Python,Mozilla,Google Plus,我已经建立了一个简单的专用浏览器(如Prism),用于不同的站点。不幸的是,Google+屏蔽了所有的浏览器,只有四个。所以它也挡住了我的 如何在MozEmbed中设置用户代理,以便告诉Goolge,我正在使用Firefox mozembed = gtkmozembed.MozEmbed() mozembed.load_url("https://plus.google.com") mozembed.show() 我在这里找到了一个可能的解决方案: 基本上,它是关于使用
mozembed = gtkmozembed.MozEmbed()
mozembed.load_url("https://plus.google.com")
mozembed.show()
我在这里找到了一个可能的解决方案: 基本上,它是关于使用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()
对不起,我还没有测试,因为我的Mozilla软件本身就坏了 设置它的一种方法是创建自定义设置文件并将该目录设置为配置文件目录:
profdir = '~/.config/mozilla'
profile = 'foo'
mozembed.set_profile_path(profile_directory, profile)
现在,gtkmozembed应该从~/.config/mozilla/foo/prefs.js
读取首选项。示例条目:
另一个选项是重载gtkmozembed.*.\u stream
函数,以使用urlib2
注入自定义User Agent
头
另外,尝试WebkitGTK+和gobject内省。自从GTK+-3以来,Mozilla和GTK+有点不稳定。需要设置
general.useragent.override
首选项,但我不知道如何使用Mozilla做到这一点。我必须在vendor、VerdoSub和vendorComment中设置哪些确切值才能识别为Firefox?@Witek OOPS!原来对vendorSub
和vendorComment
的支持不久前就被删除了。对于vendor
,从这里查看示例..您还可以尝试general.useragent.override
是否有效;)它与general.useragent.override一起工作:“Mozilla/5.0(X11;Linux x86_64;rv:7.0.1)Gecko/20100101 Firefox/7.0.1”。我没有编辑prefs.js,而是打开了关于:config的URL。现在谷歌不再阻止我了:-D@Witek:嘿,我不知道关于:配置在pygtkmozembed中起作用:)
user_pref("general.useragent.override", 'foo');