第一种查询方式
在官网上 可以找到多种数据查询方式,第一种是按期号查询数据 指定code去查询该期数据 查询链接如下: Request URL: http://www.cwl.gov.cn/cwl_admin/kjxx/findKjxx/forIssue?name=ssq&code=2018126
第二种查询方式
在这里 有其他的批量查询数据的方式 其中自定义查询中选用按期号查询的方式较为方便 这种查询方式可以指定例如 从 2013001期到2013101期 甚至从 2013001-2015001都可以查 但是如果时间跨度较大的话 回传的数据会分页 链接如下 Request URL: http://www.cwl.gov.cn/cwl_admin/kjxx/findDrawNotice?name=ssq&issueCount=&issueStart=2013001&issueEnd=2015001&dayStart=&dayEnd=&pageNo=
有些参数可以为空 这里可以精简一下 Url: http://www.cwl.gov.cn/cwl_admin/kjxx/findDrawNotice?name=ssq&issueStart=2018001&issueEnd=2018051
注意:链接直接点过去的话是看不到任何东西的,服务端应该设置了某种 Referrer Policy 这个坑困扰了我有一阵 刚入坑python爬虫就遇到这种棘手的问题 我并没有从豆瓣爬虫开始练起 而是找了一个需要的数据的链接开始爬 虽然会遇到更多的坑 但与此同时 在解决这些问题的过程中 也能学到更多的东西 这个问题经过反复对比请求头 终于发现了问题: 请求头中不带referrer信息的话 是拿不到任何数据的 这里可以对比两次请求的请求头来看
图1 是成功拿到数据的请求头 图2 无任何数据返回 先简单拿到部分数据看一下
这样写的话 对于某些 链接是有效的 开始什么数据都拿不到 确实很让人迷惑 先开始想 是不是没有加user-agent??? 空想无用 尝试验证一下 这里在请求头中 加上user-angent试试 代码如下
还是拿不到 数据 那就不只是user-angent的问题了 就像上面说的 通过反复对比请求头 最后终于解决了问题
再次尝试 ,结果不需要加user-angent 也可以,最终正常拿到数据的代码如上 现在可以简单拿到回传的数据了
为了好分析 这里先拿两期数据下来分析一下 拿到的数据如下: