Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.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 如何获取第三方cookie?_Python_Firefox_Selenium - Fatal编程技术网

Python 如何获取第三方cookie?

Python 如何获取第三方cookie?,python,firefox,selenium,Python,Firefox,Selenium,我正在开发一个服务,它可以监听URL,访问每个URL,并为每个请求获取cookies 目前我有这样的想法: browser = webdriver.Firefox() browser.get('http://google.com') cookies = browser.get_cookies() #parse cookies 然而,这只会给我第一方cookies,但我还需要第三方cookies。我发现Selenium web驱动程序不支持这一点。我想知道如何才能做到这一点?我不局限于硒,因此

我正在开发一个服务,它可以监听URL,访问每个URL,并为每个请求获取cookies

目前我有这样的想法:

browser = webdriver.Firefox()
browser.get('http://google.com')
cookies = browser.get_cookies()

#parse cookies
然而,这只会给我第一方cookies,但我还需要第三方cookies。我发现Selenium web驱动程序不支持这一点。我想知道如何才能做到这一点?我不局限于硒,因此希望有其他解决方案

import requests
s = requests.session()
r = s.get('http://google.com')
r = s.get('http://facebook.net')
for cookie in s.cookies:
    print(cookie)


使用:Selenium+PhantomJS

from selenium import webdriver

cookie_file_path = 'cookie.txt'

args = ['--cookies-file={}'.format(cookie_file_path)]
driver = webdriver.PhantomJS(service_args=args)
driver.get('http://google.com')
driver.get('http://facebook.com')
with open(cookie_file_path) as f:
    print(f.read())
输出(已包装):

[概述]
cookies=“@Variant(\0\0\0\x7f\0\0\0\x16QList\0\0\0\x1\0\0\0\0\0\a\0
\0\0\xd6NID=67=SZetUV-oLq_M8ik40VT2GEIb45LMaXkhm6H3zx1wULO52qkCHPc9AML_p5eubW4zL
Ms158YAYKQTdCJzb4mInix_Zek6P8Ej1XZh9h5Ng3I7X4gZuE_S-FL2YPASY9B;仅HttpOnly;到期
es=Wed,2013年12月18日02:44:31 GMT;domain=.google.co.kr;path=/\0\0\0ldatr=kMm\Ue
0P06lxFANs8c wCgwG;仅适用于HttpOnly;过期日期=周四,2015年6月18日02:44:32 GMT;域名=.fac
ebook.com;path=/\0\0\0Kreg\u fb\u gate=https%3A%2F%2Fwww.facebook.com%2F;domain=.f
acebook.com;path=/\0\0\0Jreg\u fb\u ref=https%3A%2F%2Fwww.facebook.com%2F;domain=。
facebook.com;path=/\0\0\xa2PREF=ID=be651672f1ddac52:U=515e3545a8a53080:FF=0:T
M=1371523471:LM=1371524047:S=iqfF3qNRUwVsInZR;expires=Thu,2015年6月18日02:54:07
GMT;domain=.google.com;path=/\0\0\xd4NID=67=pm8ws9703 eughhhimx\u hBpqhUyAhCUG
TebjDZ6YY_cP7CuvIA4x8ElgGaj6tOweXFxxjALoX1PwqFvHHkUY1kerw3vwM-VaIyyPVSADMqOnR-Ty
ed_BGU3BK6YSWUEG;仅限HttpOnly;过期日期=周三,2013年12月18日02:54:07 GMT;域名=.goog
le.com;path=/\0\0\0\xa9PREF=ID=9769c9a2d96728cf:U=3d59c2548337b74e:FF=0:NW=1:TM
=1371523471:LM=1371524047:S=vE5Y_06lhp47;expires=Thu,2015年6月18日02:54:07
GMT;域=.google.co.kr;路径=/)”

以下是如何在javascript中执行此操作:@mitchfish36:我需要使用Python,但是,您的示例只能获得第一方cookie(来自同一域的cookie)。我目前的解决方案是使用代理并检查响应上的Set Cookie头,但我更愿意使用不太复杂的方法。这只会获取服务器发送的第一方Cookie。我还需要来自javascript的cookies集。谢谢,这两种解决方案,Selenium+PhanthomJS和Selenium+Google Chrome都可以工作。使用Google Chrome,您甚至不需要cookie文件,因为.get\u cookies()检索所有域的cookie。
[General]
cookies="@Variant(\0\0\0\x7f\0\0\0\x16QList<QNetworkCookie>\0\0\0\0\x1\0\0\0\a\0
\0\0\xd6NID=67=SZetUV-oLq_M8ik40VT2GEIb45LMaXkhm6H3zx1wULO52qkCHPc9AML_p5eubW4zL
Ms158YAYKQTdCJzb4mInix_Zek6P8Ej1XZh9h5Ng3I7X4gZuE_S-Fl2YpaSYd9B; HttpOnly; expir
es=Wed, 18-Dec-2013 02:44:31 GMT; domain=.google.co.kr; path=/\0\0\0ldatr=kMm_Ue
0P06lxFANs8c-wCgwG; HttpOnly; expires=Thu, 18-Jun-2015 02:44:32 GMT; domain=.fac
ebook.com; path=/\0\0\0Kreg_fb_gate=https%3A%2F%2Fwww.facebook.com%2F; domain=.f
acebook.com; path=/\0\0\0Jreg_fb_ref=https%3A%2F%2Fwww.facebook.com%2F; domain=.
facebook.com; path=/\0\0\0\xa2PREF=ID=be651672f1ddac52:U=515e3545a8a53080:FF=0:T
M=1371523471:LM=1371524047:S=iqfF3qNRUwVsInZR; expires=Thu, 18-Jun-2015 02:54:07
 GMT; domain=.google.com; path=/\0\0\0\xd4NID=67=pm8Ws9703eugHhhImX_hBpqhUyAhCUG
TebjDZ6YY_cP7CuvIA4x8ElgGaj6tOweXFxxjALoX1PwqFvHHkUY1kerw3vwM-VaIyyPVSADMqOnR-Ty
ed_bGU3bk6YSwUUeG; HttpOnly; expires=Wed, 18-Dec-2013 02:54:07 GMT; domain=.goog
le.com; path=/\0\0\0\xa9PREF=ID=9769c9a2d96728cf:U=3d59c2548337b74e:FF=0:NW=1:TM
=1371523471:LM=1371524047:S=vE5Y_06LhP4unse7; expires=Thu, 18-Jun-2015 02:54:07
 GMT; domain=.google.co.kr; path=/)"