python爬虫遇到会话存储sessionStorage

时间:2022-01-29 19:42:03

记录一次爬虫生成链接过程中遇到的sessionStorage存储数据

1.简介

sessionStorage 是HTML5新增的一个会话存储对象,用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。

seesionStorage的存储方式采用key、value的方式。value的值必须为字符串类型(传入非字符串,也会在存储时转换为字符串。

2.应用:艺龙国际机票订单付款页

  python爬虫遇到会话存储sessionStorage

这是按照正常步骤访问进入的艺龙国际机票订单页

下面是链接地址:  http://iflight.elong.com/order/gotofillorder/?p=%7B%22adult%22%3A1,%22arriveCity%22%3A%22SEL%22,%22arriveCityName%22%3A%22%E9%A6%96%E5%B0%94%22,%22backDate%22%3A%222018-11-21%22,%22child%22%3A0,%22classType%22%3A%22YSCF%22,%22classTypeName%22%3A%22%E7%BB%8F%E6%B5%8E%E8%88%B1%2F%E8%B6%85%E7%BA%A7%E7%BB%8F%E6%B5%8E%E8%88%B1%22,%22cacheKey%22%3A%22W3iRbOxobK1rgw4kbRa%22,%22departCity%22%3A%22BJS%22,%22departCityName%22%3A%22%E5%8C%97%E4%BA%AC%22,%22departDate%22%3A%222018-11-18%22,%22flyType%22%3A1,%22flyTypeName%22%3A%22%E5%BE%80%E8%BF%94%22,%22grabCode%22%3A-99,%22tid%22%3A%22ET20181118BJSSEL20181121A1C0I0YSFCRT20181115162010CP23C500II79AJ%22,%22fno%22%3A%5B%22OZ3365%22%5D,%22fdate%22%3A%222018-11-18T10%3A55%3A00%22,%22priceKey%22%3A%22133_RT_BJS_SEL_20181118_20181121_1_0%252320181118_OZ3365_V%257C20181121_OZ3355_V%25230_0%2523TCPL%22%7D&backlist=%2Fflightsearch%2Flist%2F%3FdepartCity%3DBJS%26arriveCity%3DSEL%26departDate%3D2018-11-18%26classType%3DYSCF%26searchType%3D1%26backDate%3D2018-11-21

大家可以点进去看一下,会发现如下图:

python爬虫遇到会话存储sessionStorage

这回怎么不加载数据了呢,通过抓包可以了解到正常访问会多出一个异步接口请求:

python爬虫遇到会话存储sessionStorage

点击请求链接,发现是个get请求,并且参数都给出来了:

python爬虫遇到会话存储sessionStorage

按道理讲,这里参数都给出来了,为什么复制出来访问就不可以了呢,猜测应该是和 session,cookie之类的有关

F12打开开发者工具,

查看cookie和session:

python爬虫遇到会话存储sessionStorage

发现,右图比左图多出来一个参数 extObj,后面的值一看肯定是列表搜索页带过来的参数(列表接口里面有这种类似的参数,有兴趣的朋友可以去列表接口找找)

下面我们来修改一下左图不加载数据的页面的会话存储:

python爬虫遇到会话存储sessionStorage

双击鼠标,左边填入键 extObj,右边给个值,把右图的值拿过来{"cabinExt":"oGpSF77lwVTMnZFNVeAVtzcrPLUS9527mJxmySV2eOKQbvL8WwMQsykOHyW4laVY814SU2d4QPLUS9527vFO1BVIHFkZccfxFriS46S20FaZ/aJTH9ZnYAF0OkxCTuYovbb4MbQPeadUP2CNRsVitSRhQv79APBgUwHP4SpVSi6ZdgsXwTnsZJ83Lz/v1rSeIjdBNDLr/9HzO8Nz0lJ9DoBjJqFpPLUS9527APqbshgh3djxuSAx2poDVIiMiIhjJ92LwoPLUS95277Xfm8Wa3GEShNFQrC62NcObSA9OrhqP7YgcgV3zWKDVRQwAb70lQNfzdu8oPCX265vYOOWalhMJLFiTl50PwE9ERRI/imVLjkDPLUS95278AjHzpxqTQ/3ll4uieAkZgfwGhDL5NRuKiXSuyJRQvNDdb6HiX9qqBGhPYeh60q4cWToSQ4mWYSlJbEAo5xrwp6UnLLZh47hkkbpPLUS9527DVdeTZP1PzA2Jbz3npaaKOkYJrNAgtE5jIlR4FZpkkGcm74yX7Gy25KwOuzLxw9SksYOF0b111KQB51qRkiezppMo/RRFPLUS9527kXiVQUppc/X2I3cUXPySerYPIfcj72sCI2hD5vERY8PLUS952732Wk2VSbVCADpiJ0fiLrppJQrNNQJ4LZc4SGOWFJtTKc6Zugq1cySkVKFPWNwxxxa5bQGGB65m5p1n017nI9LkwjDjIMdeASr3RElcyEo9cCCsoosOxHsvDjrOPsn","goSegExt":"ecPa/lpAyxh48Zadu1hKoNmPLvJfa30AHv6T70dj374fwiy//ythPLUS9527JPLUS9527MWcWYJaqUN0TfPLUS9527GZ9EzggkFMEc4oZRfklQ2KkbYvGSobySItqPLUS9527UBtOb32k55xo5kNY74qDbbr2hKHilWPLUS9527u/9S92DFQEACXiDS9B6dn85uejePgmJW37PD02k6jhRpMsdog6dR1ReWB4DsFI75WBRo6nYXR5hzJa5UA5ilrB1ubMUuNJmuMrpxGchPJEcZYYht9Xgs9saDWcFoxYCwI8XJNMHiMp0Vfx/XIXluSjyHBNEHKscH0zIvNeujZ5elcL3W1CV4uRbsgET2VeNvcmXphVk0p6NpyB5PLUS95271CXv6Nq7gTBSFoZUSyCCwztNPUelkbAIa7ePLUS9527ruZrJoNLkRc4MU4cJgGPR4u0FyGL6nxEb9VH7eY7JaMnXKk/E7MhLoB0uZDs5M34sohu","backSegExt":"ecPa/lpAyxh48Zadu1hKoNmPLvJfa30AHv6T70dj377Aq7oxmIjaxqRlVDzMGz0udU/J4JyjN8mvYK8Ikxuq0Q4paixYRw0Jk7Gf0FPLUS9527oS/sxnZZWC4gGwmkXE8Ux/PJERQSX92uciOoRRRMhlLR67GG49AnJ8zEU1BO/AE/bamL978k8ULYrh3J4F6w9g/NlzbIMZ0HC8RpwgxLad51n7/VaqeWx/G/1lvO5J0HqmEPNv2MKTkSdeg7rODA9N63epj/sRpmUnNC8AftbYtEYSvYK4/8IEkzc/utof3Qaayc3LarkvS/0jdSCe5ASonNEVMOq0uYuEovfH5fjo/0PAN9VZjcirFgIawcgkVikqeFYpLErnkDE8gxchOiFjFRAaSRJNh5tiV2PLUS9527aCDDzd47QKgsaIeBa9ManpnPLUS952746Ar6PLUS9527qCW1ozQ8HhtIy/J7AyC4Yf"}

朝空白处点一下,会自动保存,然后刷新页面,发现有数据了:

python爬虫遇到会话存储sessionStorage

爬虫通常是get请求参数在链接里,或者post请求提交参数,来达成某种目的(订单生成),

把订单链接后面的参数删除 (http://iflight.elong.com/order/gotofillorder/),只要会话存储里有上面的参数,一样可以生成\

这个订单链接后面带了那么多参数,竟然没用,只是障眼法

到这里基本就完成了,我们只需要把参数和订单链接交给前端来处理.

温馨提示

  • 如果您对本文有疑问,请在评论部分留言,我会在最短时间回复。
  • 如果本文帮助了您,也请评论关注,作为对我的一份鼓励。
  • 如果您感觉我写的有问题,也请批评指正,我会尽量修改。
  • 本文为原创,转载请注明出处。