如何获得第三方Cookie? [英] How to get 3rd party cookies?

查看:144
本文介绍了如何获得第三方Cookie?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发一个服务来监听网址,访问他们每个人,并为每个请求获取cookies。



目前我有类似这样的内容: (b

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

#parse cookies

然而,这只会给我第一方饼干,但我也需要得到第三方饼干。我发现Selenium网络驱动程序不支持这一点。我想知道我怎么能做到这一点?我不限于硒,所以将不胜感激其他解决方案。

解决方案

 导入请求
s = requests.session()
r = s.get('http://google.com')
r = s.get('http://facebook.net')
在s.cookies中的cookie:
print (cookie)

http://python-requests.org/




使用:Selenium + PhantomJS

  from selenium import webdriver 

cookie_file_path ='cookie.txt'

格式(cookie_file_path)]
驱动程序= 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())


$ b

输出(包裹):

  [一般] 
cookies =@ Variant(\0\0\0\x7f\0\0\0\x16QList< QNetworkCookie> \\ 0 \\\\\\\\\\\\\\\\\\\\\\\\\\\\' b Ms158YAYKQTdCJzb4mInix_Zek6P8Ej1XZh9h5Ng3I7X4gZuE_S-Fl2YpaSYd9B;仅Http; expir
es =星期三,18-Dec-2013 02:44:31 GMT;域= .google.co.kr; path = / \ 0 \\\\\\\\\\\\\\\\\\\\\\\\\\'仅Http;到期=星期四,18-Jun-2015 02:44:32 GMT; domain = .fac
ebook.com;路径= / \0\0\0Kreg_fb_gate = HTTPS%3A%2F%2Fwww.facebook.com%2F; domain = .f
acebook.com;路径= / \0\0\0Jreg_fb_ref = HTTPS%3A%2F%2Fwww.facebook.com%2F;域=。
facebook.com;路径= / \ 0 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\''到期=星期四,18-Jun-2015 02:54:07
GMT;域= .google.com; path = / \\\\\\\\\\\\\\\\\\''仅Http;到期日=星期三,18-Dec-2013 02:54:07 GMT; domain = .goog
le.com; 0 = NW:1:TM
= 1371523471:LM = 1371524047:S = vE5Y_06LhP4unse7;到期=星期四,18-Jun-2015 02:54:07
GMT;域= .google.co.kr; path = /)


I am working on a service that would listen for URLs, visit each of them and get cookies for each request.

Currently I have something like this:

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

#parse cookies

However, this only gives me 1st party cookies, but I also need to get 3rd party cookies. I found out that Selenium web drivers don't support this. I would like to know how can I achieve this? I'm not limited to Selenium, so would appreciate other solutions.

解决方案

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

http://python-requests.org/


Using: 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())

Output (wrapped):

[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=/)"

这篇关于如何获得第三方Cookie?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆