python 脚本遇到session 获取不到cookie?

发布于 2022-09-04 06:19:30 字数 2393 浏览 22 评论 0

今天想抓取一个网站的数据,碰到了一些不懂的问题,望大神指点。
目标网页里面的查询
目标的查询结果请求URL应该是类似这样的

http://query.sse.com.cn/infodisplay/queryLatestBulletinNew.do?&pageHelp_cacheSize=1&endDate=2007-01-01&pageHelp_endPage=5&pageHelp_beginPage=1&reportType=YEARLY&jsonCallBack=jsonpCallback94092&reportType2=DQGG&_=1479728851996&beginDate=2006-01-01&productId=600336&pageHelp_pageNo=1&pageHelp_pageSize=25&pageHelp_pageCount=50

退出了浏览器,清空了cookie打开目标页面,获得了下面的数据。
Q1: 下面的 If-None-Match:"pv26e607e134f72967108d48463b224f85" 这些是缓存机制抓取的时候是不是应该照样加入头部,要不然判定有存在缓存是不是就不会返回数据了?因为还没有成功访问,要不然可以自己试一试?。
Q2 访问这个网页的响应头 Date:Mon, 21 Nov 2016 14:51:11 GMT 这里是不是就是session开始了? 我记得session在本地也是有保存cookie的吧? 可是这里没有留下cookie
页面里面有访问inspect.html,也是没有带cookie的。
但是中间有一段ajax获取数据的请求又是带有cookie的,这个cookie哪里来的?

我尝试先访问regular然后在访问inspect.html但是Python代码没有留下任何的cookie

// 数据请求中的cookie
Cookie:PHPStat_First_Time_10000011=1479739869208; PHPStat_Cookie_Global_User_Id=_ck16112122510912151179744758197; PHPStat_Return_Time_10000011=1479739869208; PHPStat_Main_Website_10000011=_ck16112122510912151179744758197%7C10000011%7C%7C%7C; _trs_uv=8m2s_532_ivs6wuhx; VISITED_MENU=%5B%228352%22%5D
//请求头
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch
Accept-Language:zh-CN,zh;q=0.8,en;q=0.6
Connection:keep-alive
Host:www.sse.com.cn
If-None-Match:"pv26e607e134f72967108d48463b224f85"
Upgrade-Insecure-Requests:1
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36

//返回头
Accept-Ranges:none
Connection:close
Content-Length:0
Content-Type:text/html
Date:Mon, 21 Nov 2016 14:51:11 GMT
ETag:"pv26e607e134f72967108d48463b224f85"
Server:IBM_HTTP_Server
Vary:Accept-Encoding
X-PvInfo:[S10203.C18228.A11748.RA0.G49EC.U9641E6FC].[OT/html.OG/pages]

简而言之,就是去一个网址扒数据,请求的时候需要cookie,但是这个cookie之前的网页里,都没有发现有响应头里面有设置。问题就是该怎么获取这段cookie。
求大神指导?。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你的往事 2022-09-11 06:19:30

那个cookie是你访问时候服务器生成的,不需要获取,这个cookie和你登陆的cookie性质不一样,下面代码供你参考

import requests

import cookielib

headers = {

'Accept':'*/*',
'Accept-Encoding':'gzip, deflate, sdch',
'Accept-Language':'zh-CN,zh;q=0.8,en;q=0.6',
'Connection':'keep-alive',
'Content-Type':'application/x-www-form-urlencoded',
'Host':'query.sse.com.cn',
'Referer':'http://www.sse.com.cn/disclosure/listedinfo/regular/',
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36'

}

session = requests.Session()
session.cookies = cookielib.LWPCookieJar('cookiejar')

url = "http://query.sse.com.cn/infodisplay/queryLatestBulletinNew.do?&jsonCallBack=jsonpCallback56537&productId=&reportType2=DQGG&reportType=ALL&beginDate=2016-09-06&endDate=2016-12-06&pageHelp.pageSize=25&pageHelp.pageCount=50&pageHelp.pageNo=1&pageHelp.beginPage=1&pageHelp.cacheSize=1&pageHelp.endPage=5&_=1480932427091"
print session.get(url=url, headers=headers).text

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文