首页 > 其他分享 >使用cooike

使用cooike

时间:2024-02-26 17:13:32浏览次数:16  
标签:cooike headers https 使用 requests xq com id

方法1:手动添加cooike

先用浏览器打开首页:'https://xq.com/',此时浏览器会被分配'Cookie'

在headers里加入  'User-Agent'、'Referer'、'Cookie'去请求URL

因为这里是异步加载,因此需要从“Fetch/XHR”的请求中查到“标头”里的请求地址url

import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36',
    'Referer': 'https://xq.com/',
    'Cookie': 'acw_tc=2760827f17089343372121360e927a734e1bae88ad5caad4dcc5f0863acd62; xq_a_token=76d4e5ee97f60e0be2c9b6c094156d577fba5c5b; xqat=76d4e5ee97f60e0be2c9b6c094156d577fba5c5b; xq_r_token=2537d01490f74c00d7d4a37578ac84f1b7481ca1; xq_id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1aWQiOi0xLCJpc3MiOiJ1YyIsImV4cCI6MTcxMTA2ODM4MiwiY3RtIjoxNzA4OTM0MzEwMTI0LCJjaWQiOiJkOWQwbjRBWnVwIn0.pjNJMo00_vP3NPARPqF0A5XvgLz6ze-ardiXMrOVgYYGc9GwcPKWtMOMZ2AP7mLAVPtxL2qXe2lxImDZVHiCZj0CO82IXw7aeu0al1y3xyOcMJirBdqt8xiafAYK6LK5kwxj2FYXqh92A4U593dsL0LemMQ698eMOZt_0caQVSBxKPVMRG4NP0rasb-p7ibGwPalToS83_V3mJLAvfOpODdZ5cl9WVuSLY4bJX71iq_J6Xn2cKRD6YE0UZeSTDGVA-upZivpUToDBqMDJ0GvPyx7zdvrg47f3YOO3U6FzgsBt0gQnDDbBn3Hw819rkBnJ0gbZKluQUBjgFebahIvsQ; cookiesu=791708934337219; u=791708934337219; device_id=1c65e977d259e2319d0dae23aaa6f673; acw_sc__v2=65dc4573e4b41a90a2deeb477baa507d676d6142'
}
url = 'https://xq.com/statuses/hot/listV2.json?since_id=-1&max_id=598676&size=15'
response = requests.get(url, headers=headers)
print(response.text)

方法2:用函数接收cookie

import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36',
    'Referer': 'https://xq.com/',
}

# 第一次访问网址,获取网站返回的cooike
URL = 'https://xq.com/'
response = requests.get(URL, headers=headers)
cookies = dict(response.cookies)   # cookie对象转换为字典

URL2 = 'https://xq.com/statuses/hot/listV2.json?since_id=-1&max_id=598676&size=15'
# 使用获得的cookies参数带入请求
response = requests.get(URL2, headers=headers, cookies=cookies)
print(response.text)

如果我们打印cookies可以看到是下面的结果

{'acw_tc': '2760825d17089371882035972e475a290a83627eb47173f2e89dacb95dcb32', 'xq_a_token': '76d4e5ee97f60e0be2c9b6c094156d577fba5c5b', 'xqat': '76d4e5ee97f60e0be2c9b6c094156d577fba5c5b', 'xq_r_token': '2537d01490f74c00d7d4a37578ac84f1b7481ca1', 'xq_id_token': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1aWQiOi0xLCJpc3MiOiJ1YyIsImV4cCI6MTcxMTA2ODM4MiwiY3RtIjoxNzA4OTM3MTQwMjkwLCJjaWQiOiJkOWQwbjRBWnVwIn0.J8HJmRhsusxzYqey6v6CgjxYE-k8gEKFGvoPmbMP6Cid6UZnfzmCIgsx4igqyhnDZImDfXlNqcoRFU50jJmi6e_9CF3gst0Fakl1orY2bH0SUjj3kW_Ut9f4lRruF9EH-4rH1OsYTtv0AgGfp_mvHgnXJyadR_O1wrMGzzDwCrlw_Cgj33997ZlDgxR-cyjR2IKkQQphrGYf3Liyw7L6J8eQxUnLxld255_YcEn2hkE67BBvzXZZjjBTfnEdJKoMlsllqEtaDfhkFNR_DXJnxxi_MczsLjIokk-PxikTJtBnZ_X2dXjSDNOlAIQohuarmuHG2Y_RQjuMHvtdCpL07g', 'cookiesu': '101708937188208', 'u': '101708937188208'}

方法3:使用requests.Session()自动维护cooikes

当你创建了session进程aaa=requests.Session()后,并用这个aaa进程请求了url,那么这个session会自动维护你的cookies,请求中也不用再特殊标识引用,依旧会被代入cookie请求。

requests提供了一个叫做session类,来实现客户端和服务端的会话保持会话保持有两个内涵:

  1. 保存cookie,下一次请求会带上前一次的cookie
  2. 实现和服务端的长连接,加快请求速度
import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36',
    'Referer': 'https://xq.com/',
}

# 第一次访问网址,获取网站返回的cooike
url = 'https://xq.com/'
aaa = requests.Session()  # 创建session对象  会自动处理cookie
aaa.get(url, headers=headers)    # 用get请求,带着头部拿到返回的cooike等信息

url2 = 'https://xq.com/statuses/hot/listV2.json?since_id=-1&max_id=598676&size=15'
# 使用返回的cookies参数去请求网站
response = aaa.get(url2, headers=headers)
# 由于网站是异步加载,因此可以直接拿取.json文件
print(response.json())

 

标签:cooike,headers,https,使用,requests,xq,com,id
From: https://www.cnblogs.com/Magiclala/p/18034734

相关文章

  • Python中字典setdefault()方法和append()的配合使用
    1.setdefault()方法语法dict.setdefault(key,default=None)说明:如果字典中包含给定的键值,那么返回该键对应的值。否则,则返回给定的默认值。Syntax:dict.setdefault(key,default_value)Parameters:Ittakestwoparameters:key–Keytobesearchedinthedictionar......
  • 可视化视频监控云平台EasyCVR使用RTMP_PUSH推流不成功是什么原因?
    高清可视化视频监控云平台EasyCVR支持高清视频的接入和传输、分发,支持7*24小时不间断监控,平台可提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、云存储等丰富的视频能力,并具备权限管理、设备管理、鉴权管理、......
  • 如何使用ilovepdf中文在线转换
    iLovePDF是一个多功能的PDF文件处理应用,它提供了一个中文版的版本,适合中国用户使用。无需下载和安装,直接打开网页就能快速使用,以下是关于如何使用iLovePDF中文版的步骤指南:ilovepdf在线转换的使用方法1.打开ilovepdf官网:在浏览器中输入ilovepdf的官方网址,进入官网首页。2.选......
  • Git基本使用
    Git基本使用Git简介Git是什么Git是一个开源的分布式版本控制系统。Git和其它版本控制系统(包括Subversion和近似工具)的主要差别在于Git对待数据的方式。从概念上来说,其它大部分系统以文件变更列表的方式存储信息,而Git是把数据看作是对小型文件系统的一系列快照。什......
  • Jenkins共享库使用
    简单使用共享库(Sharedlibraries)是一种可以用来封装函数、变量甚至整个Pipeline的机制。通过共享库,可以将常用的功能和流程逻辑定义在单独的Groovy脚本中,然后在多个Pipeline中重复使用,从而实现代码重用和统一管理比如说复用这个转成json的方法//tool.groovyimportgroov......
  • SSH框架使用AOP代理+自定义注解遇到的相关问题总结
    1、AOP注解失效问题编写完成注解和AOP切面类时,在controller中加上注解,注解不生效。在配置文件xml中开启AOP注解:<aop:aspectj-autoproxyproxy-target-class="true"/>如果该配置以加在项目里,但是还是不生效。需要检查一下自己的项目是否是Spring.xm分层配置的。如果分层配置的,需......
  • StampedLock 使用例子
    StampedLock是Java8引入的一种新的锁机制,它是ReadWriteLock的改进版,提供了更高的并发性和更好的性能。下面是一个使用StampedLock的示例:importjava.util.concurrent.locks.StampedLock;publicclassStampedLockDemo{privatedoublex,y;privatefinalSt......
  • linux使用except和子进程交互
    #!/bin/bash#set-x#FTP服务器信息FTP_HOST="ftp.deepvision-tech.com"FTP_USERNAME="huangbinbin"FTP_PASSWORD="xxxxx."#远程目录和文件REMOTE_DIRECTORY=$1LOCAL_FILE=$2ftp_command="ftp-n$FTP_HOST"check_directory="......
  • Jenkins流水线使用@Grab 导入Maven库
    有个需求需要在pipeline中调用Java的SDK去执行业务使用@Grab注解可以在Maven中导入Java库,@Grab('org.apache.commons:commons-math3:3.4.1')importorg.apache.commons.math3.primes.Primes引入依赖后,在通过import导入另外的写法@Grab(group='org.springframework',mod......
  • EvoSuite使用总结
    1.安装EvoSuite插件以IDEA为例,在Plugins栏搜索EvoSuite后点击install,安装完成后重启IDEA2.使用EvoSuite选中文件右键选择RunEvoSuite生成成功可以看到如下提示:注意事项:生成路径:src/test/java使用junit4版本然后在pom.xml文件添加如下依赖:<dependency>......