Python:如何从请求头中提取值?

2024-04-29 00:57:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用python请求登录到http://www.nike.com。我首先需要获得的访客ID使用的网址的一部分,为电子后登录请求。你知道吗

我唯一能找到访客ID的地方是在请求头上,或者从名为会话.html(倒数第二行):

Host: unite.nike.com User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:71.0) Gecko/20100101 Firefox/71.0 Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate, br
Connection: keep-alive Referer: https://www.nike.com/ Cookie:
unite_session_timestamp=1576329023.544;
AnalysisUserId=23.55.63.143.14021576254721750;
geoloc=cc=US,rc=GA,tp=vhigh,tz=EST,la=33.9527,lo=-84.5502;
_abck=DBC900CDC3416CA3081D219565092623~-1~YAAQRn8cuEVSPfFuAQAAaGKJBAMRarfsP78RZ4VYJ5mFlEospcrEDhXK7yktxh0s6aELEUhmbR3oxqBdoXhHyz+5teVhxiU6ZOIJ+NhUqPvi63XoTk4Dt5UOyzxsJ88d8DSjYYvjubAqueexv9k6ifu5W+diPOjvD+j8rLrYMO9f/zdVp0ONI4F4xtf75Ei1GzNl4UOr4/kGzjQO0vpOpMdy8dWsDkU4lFL8iBjx3sIeVRBOMEIixaVHvQ4f1LxkOOspSc9dl8GT62NZwEwNQskNg77N2d7BZmFBq+VlRfI/Tim0vDw5kPW7ZkIo/rFZ9gXfKnVa0AUme3ibgh7MvGiB~0~-1~-1;
AMCV_F0935E09512D2C270A490D4D%40AdobeOrg=1994364360%7CMCMID%7C30875329069180635150985578545920046877%7CMCAID%7CNONE%7CvVersion%7C3.4.0;
NIKE_COMMERCE_COUNTRY=US; NIKE_COMMERCE_LANG_LOCALE=en_US;
nike_locale=us/en_us; ppd=homepage|nikecom>homepage;
anonymousId=E57B373EA8F5B49A3AAF8B71E666B612;
cid=undefined%7Cundefined; lls=3;
llCheck=zxyFS9TTVF/KRWpjToELsFnSlwh5bk0L390CKZD4x7ajXtLwnhSNVhdUqvPr8WtzzELuk71QfITW3agcF4ZzYHkXPxSdnZ7yKgxXuwof+WNWbZ4T6eGrTFtbJdKZpB8AqBiksUu03dAn65VAQfPflXDLnj/DM4BTW4Rhd2ujmcU4stqx5Zxl8uNcL6v5NJ3AqjslhUWBsHPSqldpHi2+1A==;
USID=DCE931818AC4E2D30323E871FF24A059.sin-231-app-us-0;
bm_sz=EEB8E5430D076DD1FE24281756822833~YAAQRn8cuBvPO/FuAQAAkJbmAwaVXoH3gAV7kQT5tkxMN+Qlap1l20aEes8m6t3gMbB9EyB3TGctLd3O5G34pawjI/tTp+M+nvNeXRD3bqzgBmx8cqP/xpSEy7i4y3NV0mhKOMcJVnBzxU8aNeqHPJB7sJFmlvuBPvt41rJrEpPi8PsTPwOgZJp9nwUAeA==;
ak_bmsc=9DBD7E5BA59DB46C2AE1C3D7BFAFA28B17373FCEAA7100005DD3F45D1172E67C~plGEA+CyKRDTNsZghJxY5X8blre2IFU48kfmptAVlJTZ1LC1lZnNFlfWMddR2sTYkdeJnVphX0HsCv7NsyXLYnAiJFs1Y7PjU6K/gMBu+/tSoIz9a7avo7o2rOBVT4P8O16Zg9SG2lmWpT5J0YzeMJdtiApw6ETaj0/zqSbAMlQchAkeeMbwUnlhcnhnIoIlAGX1y7fpkeYkm3sjzsIKwg/jYa6jjhQ0NjJQBgpFGVdNve+GtDR33BXptSBLOGI+BS;
bm_mi=3205DC3D5EA60BB87749D8194EE1581A~lsZgQDPsQ5G77z/B39j+oZUTbLdVAQ4mMGq017AQEbeelNyECOAoiXb5oXfP9FrerIF9rfylw/PE61pLofNjG2O/M5O5mrm1DfQn7r70CcqnpK7XH1rIL0uLe8ycBLUtP7sRlzDXkCvGRa2zrzi9O2PnTO7cxgddtIa20zOY0iLt84H/MZeLVuVUubzh4WnuY3FdNXs0R63lfMHrD1GHSw==;
bm_sv=E3CC5BAA5A5AE87D3F8891D81484DAAF~yLvhA6NYY1C1SARFy0UAAQ/4Hlpg1na4epdK8yvHe//RvzqyFqVApXIqQ4SsnQamxzMPbYnUMW2JNLgO3LMW82SPypOlA75KjXd0lNFom/FouOlyZceZ0gsoT6Nq3Tk5SrVk8B7I/E4TRtFhIRhX+JryafrZ9EAvzpQ5el6ovKM=;
visitData={"visit":"1","visitor":"3e79f5a6-e054-410e-83a1-fbd911890907c2"}
Upgrade-Insecure-Requests: 1 DNT: 1

这是我的密码会话.html地址:

def nike():

    headers = {
        'Host': 'unite.nike.com',
        'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:71.0) Gecko/20100101 Firefox/71.0',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        'Accept-Language': 'en-US,en;q=0.5',
        'Accept-Encoding': 'gzip, deflate, br',
        'Connection': 'keep-alive',
        'Referer': 'https://www.nike.com/',
        'Upgrade-Insecure-Requests': '1',
        'DNT': '1'
    }

    s = requests.Session()
    sessionresp = s.get("https://unite.nike.com/session.html", headers=headers)

    print(sessionresp.cookies)

nike()

但这段代码只提取响应cookies。我不知道如何访问请求头或请求cookies。如何访问请求Cookie或标头以便提取访问者ID?你知道吗

我还将包括显示访问者ID的登录参数:

Query String    
appVersion  660
experienceVersion   660
uxid    com.nike.commerce.nikedotcom.web
locale  en_US
backendEnvironment  identity
browser 
os  Linux x86_64
mobile  false
native  false
visit   1
visitor 3e79f5a6-e054-410e-83a1-f988971689dc2
JSON    
client_id   HlHa2Cje3ctlaOqnxvgZXNaA89089nAuH
grant_type  password
password    password
username    user
ux_id   com.nike.commerce.nikedotcom.web

Tags: httpscomidapplicationlinuxhtmlwwwxml
1条回答
网友
1楼 · 发布于 2024-04-29 00:57:28

我已经检查了visitData头。实际上等于X-Request-Id

检查以下内容:

enter image description here

因此您可以通过以下方式获得:

import requests

r = requests.get('https://www.nike.com/')

print(r.headers['X-Request-Id'])

你现在所需要的就是使用requests.Session()

相关问题 更多 >