pyspider爬虫iframe blocked解决:pyspider解析JSON

写文初衷

  • 让其他人少走弯路。

需求:爬取事件的标题、时间和url地址

链接:http://www.chinamoney.com.cn/fe/Channel/45437923?tbnm=%25E6%259C%2580%25E6%2596%25B0&tc=null&isNewTab=1

微信截图_20180802093258.png

iframe blocked问题出现

列表页的标题和时间可能是动态加载的,pyspider框架里面显示iframe blocked(加了fetch_type='js'也没用),尝试找一下JSON地址


微信截图_20180802093119.png
微信截图_20180802093137.png

找JSON地址的步骤:

  • 在列表页F12打开开发者工具,选择network里面的XHR,F5刷新发现多出来几个文件
  • 每个文件点开看一下,发现最后一个文件是我们需要的,得到地址1:http://www.chinamoney.com.cn/ags/ms/cm-u-notice-issue/bIssuAn
    image.png
  • 往下翻,翻到最后的form data,选择view source,得到地址2:typeCode=null&isNewTab=1&pageNo=1&pageSize=30&sDate=2018-8-6&eDate=2018-8-7&limit=1&timeln=1


    image.png

    image.png

JSON地址 = 地址1 + ‘?’ + 地址2(中间加一个‘?’拼接)

http://www.chinamoney.com.cn/ags/ms/cm-u-notice-issue/bIssuAn?typeCode=null&isNewTab=1&pageNo=1&pageSize=30&sDate=2018-07-3&eDate=2018-8-2&limit=1&timeln=1

JSON页(事件列表页的json)

  • title:标题
  • publishDateStr:发布时间
  • draftPath:事件URL(有些事件url为空,需要进一步解析json)


    image.png

进一步分析url为空的事件

回到列表页,随便点击一个列表页JSON页中url为空的事件,通过同样的方法,得到详情页的JSON地址(简称JSON2),在JSON2里面通过同样的方法获得所需要的标题、发布时间和url。(F12,F5,拼接等操作)

JSON2地址:

http://www.chinamoney.com.cn/ags/ms/cm-u-notice-an/viewBondIssu?bondCode=3979882019&channelId=2560%2C2583%2C2563&pageNo=1&pageSize=10&timeln=0
这仅仅是一个事件的json2,想拿到所有的,bondCode=3979882019中的3979882019应该替换成each['bondDfndCd']
需要注意的就是,response.json['records']是一个列表,里面每一条对应每一个事件,通过for我们可以拿到每一个事件的bondCode:代码如下

        for each in response.json['records']:
            return each['bondDfndCd']

JSON2页面(url为空的事件详情页的json)

获得了url为空的事件的标题名称、事件和url


image.png

代码稍后有空再弄

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,024评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 35,124评论 18 399
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 14,710评论 0 15
  • 记得一个故事,好像是讲的犹太人遇难,让两个儿子选择请人帮助。 一个人是寻找曾经帮助过自己的人,来帮自己渡过难关这个...
    甲坤阅读 1,963评论 1 2
  • 大家好,今天是30天电商读书会第16天,今天聊的书是:《联盟》 核心观点就是:尊重人才,把全球人才变成你的人脉 今...
    老六这厮阅读 503评论 0 0

友情链接更多精彩内容