Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中设置用户代理?_Python_Mozilla_Google Plus - Fatal编程技术网

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

如何在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() 我在这里找到了一个可能的解决方案: 基本上,它是关于使用

我已经建立了一个简单的专用浏览器(如Prism),用于不同的站点。不幸的是,Google+屏蔽了所有的浏览器,只有四个。所以它也挡住了我的

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

    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');