2018-08--4爬取金色财经网页

  网址:https://www.jinse.com/search/EOS

第一步:我观察了网页;发现了网页是一个发送ajax请求的网页,发现如下:

  

然后 我就先爬取第一次请求出来的信息,剩下的请求可以经过比较每次请求的参数的变化来做比较,从而发现规律。

第二步:我上代码,用requests 请求网页第一次发送ajax请求的网址:地址在上图的header的地方:

  获取发送ajax请求的源代码,然后拿到网页源码,因为在上述图片中 我们想要的数据全在源码中-----这是开始的想法,

  然而拿到源码的时候,返回的是一堆Unciode编码的数据,用。content.decode('utf-8')解析也没用,我有回到网页去观察,发现了如下下图:

  发现ajax请求的response字段的内容跟我们获取的源码一模一样。

  

第三步:我我发现获取的内容是字典类型的数据,因此我想到了json ,因为json有两种结构:对象和数组。

     1.对象: 对象以“{”开始,“}”结束,“key/value”之间运用 “,”分隔

       var packjson={"name":"Liza" , "password":"123"}

    2.数组:数组是值的有序集合。一个数组以”{“ 开始 以”}“ 结束。值之间运用逗号“,”隔开

       var packjson=[{"name":"liza"},{"name":"asdas"}]

   所以,我们获取的就是JSON格式的数据,而我们知道JSON格式的数据 需要用“双引号”括起来 不能用‘单引号’

    所以我就试着用两种不同的方式来处理这个json格式显现出来的unciode编码的问题。

      1.直接将源代码转化为json对象:

      

      

        2.利用python内置模块import json   包含两个函数:

      a.json.dumps() 将json 对象转化为json字符串

      b.json.loads() 将json 字符串转化为json对象   而我们现在就要用到json.loads(str)  所需要讲源代码转化为字符串形式才行

        

总结: d当我们在ajax请求的时候遇到JSON格式的数据的时候,看见输数据是Unciode编码的数据 ,我们就要把数据变成JSON对象 

     

 

  

  

    

 

    

  

爬虫-ajax请求遇到Unicode编码问题的更多相关文章

  1. Python爬虫学习==>第十一章:分析Ajax请求-抓取今日头条信息

    学习目的: 解决AJAX请求的爬虫,网页解析库的学习,MongoDB的简单应用 正式步骤 Step1:流程分析 抓取单页内容:利用requests请求目标站点,得到单个页面的html代码,返回结果: ...

  2. Selenium爬虫实践(踩坑记录)之ajax请求抓包、浏览器退出

    上一篇: 使用Selenium截取网页上的图片 前言 最近在搞公司内部系统,累的一批,需要从另一个内部系统导出数据存到数据库做分析,有大量的数据采集工作,又没办法去直接拿到那个系统的接口,太难了,只能 ...

  3. python爬虫得到unicode编码处理方式

    在用python做爬虫的时候经常会与到结果中包含unicode编码,需要将结果转化为中文,处理方式如下 str.encode('utf-8').decode('unicode_escape')

  4. python爬虫之分析Ajax请求抓取抓取今日头条街拍美图(七)

    python爬虫之分析Ajax请求抓取抓取今日头条街拍美图 一.分析网站 1.进入浏览器,搜索今日头条,在搜索栏搜索街拍,然后选择图集这一栏. 2.按F12打开开发者工具,刷新网页,这时网页回弹到综合 ...

  5. Python爬虫连载9-JS加密之“盐”​、ajax请求

    一.JS加密之“盐”​ 1.salt属性“盐":多用于密码学,比如我们的银行卡是六位密码,但是实际上在银行的系统里,我们输入密码后,会给原始的密码添加若干字符,形成更加难以破解的密码.这个过 ...

  6. 爬虫(八):分析Ajax请求抓取今日头条街拍美图

    (1):分析网页 分析ajax的请求网址,和需要的参数.通过不断向下拉动滚动条,发现请求的参数中offset一直在变化,所以每次请求通过offset来控制新的ajax请求. (2)上代码 a.通过aj ...

  7. 不使用回调函数的ajax请求实现(async和await简化回调函数嵌套)

    在常规的服务器端程序设计中, 比如说爬虫程序, 发送http请求的过程会使整个执行过程阻塞,直到http请求响应完成代码才会继续执行, 以php为例子 $url = "http://www. ...

  8. 配置Chrome支持本地(file协议)的AJAX请求

    什么问题 WEB开发过程中,很多时候我们都是写一些简单的Demo,并不是开发一个完整项目,此时我们常见的操作是: 新建文件夹 新建需要的文件 在Sublime(或其他编辑器)中完成DEMO的编码 双击 ...

  9. SpringMVC下Ajax请求的方法,@Responsebody如果返回的是布尔值,ajax不会接到任何回传数据

    SpringMVC框架下,如果用ajax向后台请求得方法如果使用@Responsebody返回布尔值的话,ajax得不到任何的回传数据. 但是如果返回String类型,就是正常的. 测试了下代码写得没 ...

随机推荐

  1. python学习第三十二天函数的闭包

    python函数中嵌套另外一个函数,另外一个函数形成一个封闭的环境,里面的那个函数叫做函数的闭包,函数的闭包好处可以保护函数里面的变量,下面讲述函数闭包的实例和用法 1,函数闭包的实例 a='cat' ...

  2. adb shell常用命令总结

    一.文件操作相关命令 1.文件操作命令 子命令 参数 说明 cd 无 进入目录 cat [-beflnstuv] [-B bsize] [file...] 查看文件内容-n:显示行号-b:显示行号,但 ...

  3. go web编程——实现一个简单分页器

    在go web编程中,当需要展示的列表数据太多时,不可避免需要分页展示,可以使用Go实现一个简单分页器,提供各个数据列表展示使用.具体需求:1. 可展示“首页”和“尾页”.2. 可展示“上一页”和“下 ...

  4. how to use epoll with python

    1 import socket, select 2 3 EOL1 = b'\n\n' 4 EOL2 = b'\n\r\n' 5 response = b'HTTP/1.0 200 OK\r\nDate ...

  5. indexDB的概念

    IndexDB利用数据键(key)访问,通过索引功能搜索数据,适用于大量的结构化数据,如日历,通讯簿或者记事本. 1. 以key/value成对保存数据 IndexDB和WebStorage都是以数据 ...

  6. 安装Sublime Text 3 的过程

    在Sublime Text官网下载最新的APP https://www.sublimetext.com 我下载的是 3143 安装之后开始在网上找注册码 我用了成功的注册码的是 这个应该是单个用户的, ...

  7. sq - 压缩一个排过序的单词列表 unsq - 解压一个排过序的单词列表

    总览 (SYNOPSIS) sq < infile > outfile unsq < infile > outfile 描述 (DESCRIPTION) sq 压缩 一个 排过 ...

  8. centos GIT安装

    [注](yum 源仓库里的 Git 版本更新不及时,最新版本的 Git 是 1.8.3.1,但是官方最新版本已经到了 2.9.2.想要安装最新版本的的 Git,只能下载源码进行安装.) 安装git服务 ...

  9. 【串线篇】Mybatis缓存之缓存查询顺序

    1. 不会出现一级缓存和二级缓存中有同一个数据.因为二级缓存是在一级缓存关闭之后才有的 2.任何时候都是先看二级缓存.再看一级缓存,如果大家都没有就去查询数据库,数据库的查询后的结果放在一级缓存中了: ...

  10. js 中HTML的 onkeycode 和onkeydown属性事件

    <!DOCTYPE html><html><head><script>function displayResult(){var x=document.g ...