python 脚本遇到session 获取不到cookie?
今天想抓取一个网站的数据,碰到了一些不懂的问题,望大神指点。
目标网页里面的查询
目标的查询结果请求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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
那个cookie是你访问时候服务器生成的,不需要获取,这个cookie和你登陆的cookie性质不一样,下面代码供你参考
import requests
import cookielib
headers = {
}
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