Python 如何获取第三方cookie?
我正在开发一个服务,它可以监听URL,访问每个URL,并为每个请求获取cookies 目前我有这样的想法: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驱动程序不支持这一点。我想知道如何才能做到这一点?我不局限于硒,因此
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=/)"