前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >绕过JS写爬虫

绕过JS写爬虫

作者头像
钱塘小甲子
发布2019-01-28 15:52:21
14.9K0
发布2019-01-28 15:52:21
举报

      最近要把很多数据抓下来先存起来,现有历史数据再说。其中,东方财富网有许多数据,其中有一个是机构调研的数据。

      http://data.eastmoney.com/jgdy/tj.html

      我们希望抓取的是js生成的表格。

      这种带有js的网站抓取其实不是那么简单的,基本分为那么几种方法,一种是观察页面,有的会有json数据,有的有js代码可以解析目标的url;一种是使用渲染工具;还有一种就是用工具来点击相关button,来抓取url,进而进一步分析。

      今天我们使用的是第三种。

      我们希望爬取的是表格中的数据,但是如果我们仔细看一下html代码,会发现,这其实是js生成的,下面这张图是源代码的截图。

      这就很尴尬了,怎么办呢?我们自己自己解析url数据访问你的api好了。

      我们用浏览器自带的解析功能来试一下。首先,我们打开network,chrome内核的好像都这么叫。

    然后我们就点击第二页、第三页不断的来观察究竟js代码访问了什么后台的url。事实是这样的

http://data.eastmoney.com/DataCenter_V3/jgdy/gsjsdy.ashx?pagesize=50&page=1&js=var YnQNqDYj&param=&sortRule=-1&sortType=0&rt=50585869 http://data.eastmoney.com/DataCenter_V3/jgdy/gsjsdy.ashx?pagesize=50&page=2&js=var strLvpoP&param=&sortRule=-1&sortType=0&rt=50585871 http://data.eastmoney.com/DataCenter_V3/jgdy/gsjsdy.ashx?pagesize=50&page=3&js=var ggPyhcCU&param=&sortRule=-1&sortType=0&rt=50585871 http://data.eastmoney.com/DataCenter_V3/jgdy/gsjsdy.ashx?pagesize=50&page=4&js=var SjIkKWnA&param=&sortRule=-1&sortType=0&rt=50585872

      我们就可以找到规律了,本质上就是改变paee后面的数字了。至于最后面一个数字,目前猜测是一个计数标记,所有的api中设置一致就可以了。

      接下来我们就可以用urllib来获得api背后的json内容了,比如是这样的:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年02月03日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档